function isLeapYear (year) {
return year % 4 == 0 && year % 100 != 0 || year % 400 ==
0;
}
function getDaysByYearAndMonth (year, month) {
var days;
switch (month) {
case 2:
days = isLeapYear (year) ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
return days;
}
function getYearDifference (date) {
var year = date.getFullYear ();
return year - beginYear;
}
function getMonthDifference (date) {
var month = date.getMonth () + 1;
return month - 1;
}
function getDayDifference (date) {
var day = date.getDate ();
return day;
}
function getDayDistance (date) {
var yearDifference = getYearDifference (date),
monthDifference = getMonthDifference (date),
dayDifference = getDayDifference (date), dayDistance
= 0, month, year;
switch (yearDifference) {
case 0:
switch (monthDifference) {
case 0:
dayDistance = dayDifference;
break;
default:
for (month = 1; month <= date.getMonth
(); month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
break;
default:
for (year = beginYear; year < date.getFullYear
(); year ++) {
dayDistance += isLeapYear (year) ? 366 : 365;
}
for (month = 1; month <= date.getMonth ();
month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
return dayDistance;
}
function getInitialWeekdayByDay (date) {
var dayDistance = getDayDistance (date), weekday =
dayDistance - date.getDate () + premierWeekday;
return weekday % 7;
return year % 4 == 0 && year % 100 != 0 || year % 400 ==
0;
}
function getDaysByYearAndMonth (year, month) {
var days;
switch (month) {
case 2:
days = isLeapYear (year) ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
return days;
}
function getYearDifference (date) {
var year = date.getFullYear ();
return year - beginYear;
}
function getMonthDifference (date) {
var month = date.getMonth () + 1;
return month - 1;
}
function getDayDifference (date) {
var day = date.getDate ();
return day;
}
function getDayDistance (date) {
var yearDifference = getYearDifference (date),
monthDifference = getMonthDifference (date),
dayDifference = getDayDifference (date), dayDistance
= 0, month, year;
switch (yearDifference) {
case 0:
switch (monthDifference) {
case 0:
dayDistance = dayDifference;
break;
default:
for (month = 1; month <= date.getMonth
(); month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
break;
default:
for (year = beginYear; year < date.getFullYear
(); year ++) {
dayDistance += isLeapYear (year) ? 366 : 365;
}
for (month = 1; month <= date.getMonth ();
month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
return dayDistance;
}
function getInitialWeekdayByDay (date) {
var dayDistance = getDayDistance (date), weekday =
dayDistance - date.getDate () + premierWeekday;
return weekday % 7;
}