85
 function leapYear(year){
    var result; 
    year = parseInt(document.getElementById("isYear").value);
    if (years/400){
      result = true
    }
    else if(years/100){
      result = false
    }
    else if(years/4){
      result= true
    }
    else{
      result= false
    }
    return result
 }

这是我到目前为止所拥有的(条目位于因此存储在“isYear”中),我基本上在这里遵循了这个,所以使用我已经拥有的,如何根据这些条件检查条目是否是闰年(注意我在实现伪代码时可能做错了,如果有请纠正我)编辑:注意这需要使用整数而不是日期函数

4

7 回答 7

198
function leapYear(year)
{
  return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}
于 2013-05-03T06:51:30.467 回答
63

该函数检查二月是否有 29 天。如果是这样,那么我们有一个闰年。

ES5

function isLeap(year) {
  return new Date(year, 1, 29).getDate() === 29;
}

ES6

const isLeap = year => new Date(year, 1, 29).getDate() === 29;

结果

isLeap(1004) // true
isLeap(1001) // false
于 2017-05-06T10:46:53.373 回答
7

Kevin P. Rice 在这里提供了一个更快的解决方案:https ://stackoverflow.com/a/11595914/5535820 所以这里是代码:

function leapYear(year)
{
    return (year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0);
}
于 2017-05-23T20:19:21.127 回答
2

如果您在 Node.js 应用程序中执行此操作,则可以使用闰年包:

npm install --save leap-year

然后在您的应用程序中,使用以下代码验证提供的年份或日期对象是否为闰年:

var leapYear = require('leap-year');

leapYear(2014);
//=> false 

leapYear(2016);
//=> true 

使用这样的库的优点是您不必处理使所有特殊情况正确的肮脏细节,因为库会处理这些问题。

于 2015-07-07T05:59:45.123 回答
-1

您可以使用以下代码检查是否是闰年:

ily = function(yr) {
    return (yr % 400) ? ((yr % 100) ? ((yr % 4) ? false : true) : false) : true;
}
于 2015-03-30T17:17:31.340 回答
-10

您可以尝试使用 JavaScript 的 Date 对象

new Date(year,month).getFullYear()%4==0

这将返回真或假。

于 2013-05-03T06:53:52.290 回答
-12

我的代码很容易理解

var year = 2015;
var LeapYear = year % 4;

if (LeapYear==0) {
    alert("This is Leap Year");
} else {
    alert("This is not leap year");
}
于 2016-08-22T01:21:09.713 回答