EAP年使用JAVASCRIPT

时间:2019-07-11 06:24:16

标签: javascript

使用上述if ... else语句查找年份是否为a年。验证程序是否具有以下输入:2104(true),2100(false),2000(true),2001(false)。提示:year年可平均除以4;但是,如果将一年平均除以100,则它不是a年,除非该年份也可以平均除以400。

嗨,我看到了两种替代解决方案。但是只有一种方法可以提供解决方案,而另一种条件则无法使用。有人可以帮忙吗?

成功输出

function leapYear3(year) {
  if ((year % 4 == 0) && (year % 100 != 0)) {
    console.log('TRUE');
  } else if (year % 400 == 0) {
    console.log('TRUE');
  } else {
    console.log('FALSE');
  }
}
console.log(leapYear3(2104)); // True
console.log(leapYear3(2000)); // True
console.log(leapYear3(2100)); // False
console.log(leapYear3(2001)); // False

//Failing : Output
function leapYear3(year) {
  if (year % 4 == 0) {
    console.log('TRUE');
  } else if ((year % 400 == 0) && (year % 100 != 0)) {
    console.log('TRUE');
  } else {
    console.log('FALSE');
  }
}

console.log(leapYear3(2104)); // True
console.log(leapYear3(2000)); // True
console.log(leapYear3(2100)); // True
console.log(leapYear3(2001)); // False

为什么这种情况不正确 ((year % 400 == 0) && (year % 100 != 0)),而以下这段代码是正确的  ((year % 4 == 0) && (year % 100 != 0))

3 个答案:

答案 0 :(得分:1)

在第二个函数中,您的第一个条件仅是“可被4整除”:

if (year % 4 == 0)

所以2100年是a年-结果不正确。

答案 1 :(得分:0)

因为2100%4 == 0,所以它安慰了0

function leapYear3(year) {
  if (year % 4 == 0) { //2100 % 4 = 0 the codition is true here so it doesnot go in the else if loop
    console.log('TRUE');
  } else if ((year % 400 == 0) && (year % 100 != 0)) {
    console.log('TRUE');
  } else {
    console.log('FALSE');
  }
}

console.log(leapYear3(2100)); // True

答案 2 :(得分:0)

在所有JS实现中都可以使用此功能:

function isLeapYear(year) {
    return new Date(year, 1, 29, 0, 0).getMonth() !== 2;
}