在javascript中检查年份是否为闰年[重复]

问题描述 投票:57回答:7

这个问题在这里已有答案:

 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”中),我基本上遵循这个here,所以使用我已经拥有的,如何根据这些条件检查条目是否是闰年(注意我在实现伪代码时可能做错了,如果有的话请纠正我)编辑:注意这需要使用整数而不是日期函数

javascript date condition date-arithmetic
7个回答
143
投票
function leapYear(year)
{
  return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}

31
投票

该功能检查二月是否有29天。如果确实如此,那么我们就有一个闰年。

ES5

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

ES6

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

结果

isLeap(1004) // true
isLeap(1001) // false

4
投票

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

function leapYear(year)
{
    return (year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0);
}

3
投票

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

npm install --save leap-year

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

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

leapYear(2014);
//=> false 

leapYear(2016);
//=> true 

使用像这样的库有一个好处,你不必处理所有特殊情况的脏细节,因为库负责处理。


0
投票

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

ily = function(yr) {
    return (yr % 400) ? ((yr % 100) ? ((yr % 4) ? false : true) : false) : true;
}

-9
投票

我的代码很容易理解

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

if (LeapYear==0) {
    alert("This is Leap Year");
} else {
    alert("This is not leap year");
}

-10
投票

您可以尝试使用JavaScript的日期对象

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

这将返回true或false。

© www.soinside.com 2019 - 2024. All rights reserved.