位置:海鸟网 > IT > JavaScript >

Javascript下判断是否为闰年的Datetime包

在看《t 实战》的时候,第三章讲的是如何创建包,里面有一个 datetime 包,提供了两个方法,一个是判断某年是否为闰年,一个判断某年某月有多少天,而且考虑了闰年的情况.

来看看源码:


/**
* cript.datetime package
* This package contains utility functions for working with dates and times.
*/
/*命名空间*/
if (typeof jscript == 'undefined') {
jscript = function() { }
}

jscript.datetime = function() { }

/**
* This function will return the number of days in a given month and year,
* taking leap years into account.(这个函数返回所给某年、某月的天数,并且考虑了闰年的情况)
*
* @param inMonth The month, where January = 1 and December = 12.
* @param inYear The year to check the month in.
* @return The number of days in the specified month and year.
*/
jscript.datetime.getNumberDaysInMonth = function(inMonth, inYear) {

inMonth = inMonth - 1;
var leap_year = this.isLeapYear(inYear);
if (leap_year) {
leap_year = 1;
} else {
leap_year = 0;
}
/*4, 6, 9, 11 月为 30 天,注意上面的 inMonth = inMonth - 1*/
if (inMonth == 3 || inMonth == 5 || inMonth == 8 || inMonth == 10) {
return 30;
} else if (inMonth == 1) {/*2 月为 28 或者 29 天,视是否为闰年而定*/
return 28 + leap_year;
} else {/*其它月则为 31 天*/
return 31;
}

} // End getNumberDaysInMonth().


/**
* This function will determine if a given year is a leap year.
*(这个函数用来确定是否为闰年)
* @param inYear The year to check.
* @return True if inYear is a leap year, false if not.
*/
jscript.datetime.isLeapYear = function(inYear) {

if ((inYear % 4 == 0 && !(inYear % 100 == 0)) || inYear % 400 == 0) {
return true;
} else {
return false;
}

} // End isLeapYear().