一个有用的 Datetime 包 | 判断是否为闰年(Javascript)

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

/**

 * jscript.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().

你可能感兴趣的:(JavaScript)