当前位置: 首页 > 知识库问答 >
问题:

如何检测闰年(javascript)

钮兴安
2023-03-14

下面的函数是用来检测闰年的,闰年是(在每一个可以被4平均整除的年份--除了每一个可以被100平均整除的年份--除非这一年也可以被400平均整除)

var Year = function(number) {
  this.number = number;
};

Year.prototype.isLeap = function() {
  return this.isDivisibleBy(4) && !this.isDivisibleBy(100) || this.isDivisibleBy(400);
}

Year.prototype.isDivisibleBy = function(divisor) {
  return this.number % divisor === 0;
}

const commonYears = [1700, 1800, 1900, 1999, 2001]
const leapYears = [1600, 2000, 2004, 2008]

commonYears.forEach(y => console.log(y, new Year(y).isLeap()))
leapYears.forEach(y => console.log(y, new Year(y).isLeap()))

因此,如果是闰年,它返回true,如果不返回false,但问题是即使是闰年,它也总是返回false,为什么?以及如何修复

共有1个答案

马欣荣
2023-03-14

为什么不使用纯函数呢?您不需要对象的开销。

const isDivisibleBy = (number, divisor) => number % divisor === 0;

const isLeapYear = year => isDivisibleBy(year, 4) && !isDivisibleBy(year, 100) || isDivisibleBy(year, 400);

const commonYears = [1700, 1800, 1900, 1999, 2001]
const leapYears = [1600, 2000, 2004, 2008]

commonYears.forEach(y => console.log(y, isLeapYear(y)))
leapYears.forEach(y => console.log(y, isLeapYear(y)))
 类似资料:
  • Python3 实例 以下实例用于判断用户输入的年份是否为闰年: 实例(Python 3.0+)# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com year = int(input("输入一个年份: ")) if (year % 4) == 0: if (year % 100) == 0: if (ye

  • 本文向大家介绍在JavaScript中查找闰年和非闰年中的第n天,包括了在JavaScript中查找闰年和非闰年中的第n天的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,将数字作为第一个参数,布尔值作为第二个参数。 布尔值指定闰年(如果为真)。基于这些信息,我们的函数应该返回一年中第 n 天的日期。 示例 以下是代码- 输出结果 以下是控制台输出-

  • 本文向大家介绍PHP程序以检查年份是否为leap闰年,包括了PHP程序以检查年份是否为leap闰年的使用技巧和注意事项,需要的朋友参考一下 要检查年份是否为PHP中的PHP年,代码如下- 示例 输出结果 定义了一个名为“ year_check”的函数,该函数以年份作为参数。它检查该年份是否可以完全除以400或4,如果是,则表示是it年。否则,这是a年。year的值在函数外部定义,并且通过将year

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

  • 我对编码非常陌生(这是我正在写的第一个代码)。 我有多个csv文件,都有相同的标题。这些文件对应于一年中每天的每小时臭氧浓度,每个文件都是一个单独的年份[范围从2009年到2020年]。我有一列“date”包含年-月-日,还有一列表示一天中的小时(0-23)。我想将年与月日分开,将小时与月日合并,并将其作为索引,然后将其他csv文件合并到一个数据帧中。 此外,我需要对10年中每天每小时的数据值进行

  • 键入结束年度:2013 2008年是闰年 2012年是闰年 非常感谢您的回复!帮助我学到了比我的讲师实际教的更多的东西:)