Календар для сайту, за допомогою JavaScript

65

Напередодні чергового святкування Нового року, як не згадати про календарі. Ось і я вирішив поділитися з вами, простеньким методом виведення календаря на сторінки ваших сайтів за допомогою JavaScript.
Цей невеликий скрипт, показує календар на поточний місяць та виділяє кольором актуальну дату. Зовнішній вигляд календаря (всі елементи таблиці) налаштовується безпосередньо в js.

Оновлення від 17.10.2014 р! З якогось переляку, вирішив повернутися до цієї теми і забабахав оновлену версію календаря, так що з посиланням на демо-сторінку, ви побачите саме новий варіант ??
Демо

Можна не особливо обтяжуючи себе і не вдаючись у тонкощі роботи скрипта, просто скопіювати код з архіву і вставити в html-сторінку вашого сайту, там де відведете місце під календар.
Для особливо цікавляться наведу код скрипта, з деякими коментарями до налаштувань формування зовнішнього вигляду календарик:

<script type="text/javascript">
monthnames = new Array(
"Січень",
"Лютий",
"Березень",
"Квітень",
"Травень",
"Червень",
"Липень",
"Серпень",
"Вересень",
"Жовтень",
"Листопад",
"Грудень");
var linkcount=0;
function addlink(month, day, href) {
var entry = new Array(3);
entry[0] = month;
entry[1] = day;
entry[2] = href;
this[linkcount++] = entry;
}
Array.prototype.addlink = addlink;
linkdays = new Array();
monthdays = new Array(12);
monthdays[0]=31;
monthdays[1]=28;
monthdays[2]=31;
monthdays[3]=30;
monthdays[4]=31;
monthdays[5]=30;
monthdays[6]=31;
monthdays[7]=31;
monthdays[8]=30;
monthdays[9]=31;
monthdays[10]=30;
monthdays[11]=31;
todayDate=new Date();
thisday=todayDate.getDay();
thismonth=todayDate.getMonth();
thisdate=todayDate.getDate();
thisyear=todayDate.getYear();
thisyear = thisyear % 100;
thisyear = ((thisyear < 50) ? (2000 + thisyear) : (1900 + thisyear));
if (((thisyear % 4 == 0)
&& !(thisyear % 100 == 0))
||(thisyear % 400 == 0)) monthdays[1]++;
startspaces=thisdate;
while (startspaces > 7) startspaces-=7;
startspaces = thisday - startspaces + 1;
if (startspaces < 0) startspaces+=7;
document.write(");
document.write("bordercolor=black>");
document.write("");
document.write("");
document.write("");
document.write("");
document.write("");
document.write("");
document.write("");
document.write("");
document.write("");
document.write("");
document.write("");for(s=0;s<startspaces;s++){
document.write("");}count=1;while(count<= monthdays[thismonth]){for(b = startspaces;b<7;b++){
linktrue=false;
document.write("");count++;}
document.write("");
document.write("");
startspaces=0;}
document.write("
" + monthnames[thismonth] + " " + thisyear + "
ВсПнВтСрЧтПтСб
"); for (c=0;c<linkdays.length;c++) { if (linkdays[c] != null) { if ((linkdays[c][0]==thismonth + 1) && (linkdays[c][1]==count)) { document.write("\"" + linkdays[c][2] + "\">"); linktrue=true; } } } if (count==thisdate) { document.write(""); } if (count <= monthdays[thismonth]) { document.write(count); } else { document.write(" "); } if (count==thisdate) { document.write(""); } if (linktrue) document.write(""); document.write("

"
);

monthnames = new Array(
“Січень”,
“Лютий”,
“Березень”,
“Квітень”,
“Травень”,
“Червень”,
“Липень”,
“Серпень”,
“Вересень”,
“Жовтень”,
“Листопад”,
“Грудень”);
var linkcount=0;
function addlink(month, day, href) {
var entry = new Array(3);
entry[0] = month;
entry[1] = day;
entry[2] = href;
this[linkcount++] = entry;
}
Array.prototype.addlink = addlink;
linkdays = new Array();
monthdays = new Array(12);
monthdays[0]=31;
monthdays[1]=28;
monthdays[2]=31;
monthdays[3]=30;
monthdays[4]=31;
monthdays[5]=30;
monthdays[6]=31;
monthdays[7]=31;
monthdays[8]=30;
monthdays[9]=31;
monthdays[10]=30;
monthdays[11]=31;
todayDate=new Date();
thisday=todayDate.getDay();
thismonth=todayDate.getMonth();
thisdate=todayDate.getDate();
thisyear=todayDate.getYear();
thisyear = thisyear % 100;
thisyear = ((thisyear 7) startspaces-=7;
startspaces = thisday – startspaces + 1;
if (startspaces < 0) startspaces+=7;
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
document.write(“

“);
for (s=0;s

“);
}
count=1;
while (count <= monthdays[thismonth]) {
for (b = startspaces;b<7;b++) {
linktrue=false;
document.write(“

“);
count++;
}
document.write(“

“);
document.write(“

“);
startspaces=0;
}
document.write(“

+ monthnames[thismonth] + “” + thisyear
+ “
Вс Пн Вт Ср Чт Пт Сб
“);
for (c=0;c“);
}
if (count <= monthdays[thismonth]) {
document.write(count);
}
else {
document.write(” “);
}
if (count==thisdate) {
document.write(““);
}
if (linktrue)
document.write(“”);
document.write(“

“);

Як бачимо, код не надто хитромудра і мінімальні налаштування будуть під силу кожному.

Оновлення від 17.10.2014 р! Виклав оновлену версію календаря, так що посилання на скачування, доступний саме новий варіант ??
Завантажити

На цьому, мабуть, поки все, як всі нормальні люди поспішаю зустріти Новий рік.
Всіх жителів планети «Інтернет» з святом і до зустрічі в новому році.

З Повагою, Андрій .

Буду вдячний, якщо поділитеся посиланням на запис в своїх соціальних мережах: