6

如何在 JavaScript 中列出特定年份的一个月有多少天?

我们知道 30 天有 9 月、4 月、6 月和 11 月。其余都有 31 天,除了 2 月有 28 天晴天,每个闰年有 29 天。

我需要计算闰年。你知道任何喜欢的本地方式..或者图书馆..你能推荐一个吗?

4

4 回答 4

9

尝试这个

function daysInMonth(m, y)

{
  m=m-1; //month is zero based...
  return 32 - new Date(y, m, 32).getDate();
}

用法 :

>> daysInMonth(2,2000) //29

于 2013-07-24T13:58:08.190 回答
3

假设这也行得通Jan=1, Feb=2 ... Dec=12

function daysInMonth(month,year) 
{
   return new Date(year, month, 0).getDate();
}

小提琴

于 2013-07-24T14:06:05.147 回答
3

当然,您可以只根据您已经知道的内容编写一个函数,并结合闰年的逻辑:

// m is the month (January = 0, February = 1, ...)
// y is the year
function daysInMonth(m, y) {
    return m === 1 && (!(y % 4) && ((y % 100) || !(y % 400))) ? 29
        : [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][m];
}

能被 4 整除但不能被 100 整除的年份,除非能被 400 整除是闰年。

于 2013-07-24T14:20:39.240 回答
0

可能有本地方法可以找到,但我认为很高兴知道,闰年算法实际上并不难自己实现:

function isLeapYear(year) {
    if (year % 400 === 0) {
        return true;
    } else if (year % 100 === 0) {
        return false;
    } else if (year % 4 === 0) {
        return true;
    }
    return false;
}
于 2013-07-24T14:20:24.080 回答