Вещи, которые вы должны помнить при создании календаря:
Каждый месяц имеет разное количество дней.
Февраль имеет 29 дней в течениевисокосные годы.
Рассчитать високосный год сложнее, чем думает большинство людей.Годы, делимые на 4, являются високосными.Однако годы, которые делятся поровну на 100, не являются високосными, если только они не делятся поровну на 400.
Если вы хотите написать свой собственный код, мало чтоиспользование jQuery позволит сократить количество циклов, которые вы должны использовать.Однако я бы посоветовал вам избавиться от этой части:
// insert a clear for each 4th month to get a nice style-break
if(i==4 || i==8 || i==12) {
tbl += "<br style='clear: both'>";
}
Используйте хороший CSS, чтобы правильно очистить строки, или используйте вместо этого таблицу (что на самом деле может быть более уместным в этом случае).
В любом случае, вы можете захотеть взглянуть на компонент пользовательского интерфейса jQuery datepicker.Я использовал это много, и это работает очень хорошо.Очевидно, это зависит от того, нужен ли вам на самом деле сборщик дат, или вы просто пытаетесь показать полный годовой календарь для расписания или чего-то еще.
http://jqueryui.com/demos/datepicker/
В качестве альтернативы, если вам просто нужночтобы отобразить полный календарь, посмотрите на существующий скрипт.Такого рода вещи уже тысячи раз делали другие люди, поэтому нет смысла заново изобретать колесо.
Например, попробуйте здесь: http://www.jsmadeeasy.com/javascripts/Calendars/list_test.asp
Одна заключительная мысль состоит в том, что ономожет быть более эффективно вывести календарь с помощью PHP или любого другого языка, который вы используете, и сделать div скрытым с помощью CSS.Тогда просто сделайте JavaScript, чтобы показать / скрыть календарь, а не создавать его каждый раз.