美文网首页
JavaScript 根据年份判断是闰年还是平年

JavaScript 根据年份判断是闰年还是平年

作者: O无为学长O | 来源:发表于2021-04-20 13:20 被阅读0次

说明:注意是闰年平年的判断,不是闰月!闰年平年是公历中的历法规则,闰月是农历历法中的规则,两者之间是没有任何关联的,不管是闰年平年,都有可能会出现闰月。

要判断指定年份是闰年还是平年,有两种思路,不同思路,适用的语言不同,虽然标题中说的是 JavaScript ,但不同语言的编程思路很多都是相通的。

1. 根据年份规则来判断

闰年的计算规则:

  • 普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
  • 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。

知道了规则,计算起来就很简单了

var year = 2020; // 指定年份
var isLeap = year %400 == 0 || year %100 != 0 && year %4 == 0; // 根据年份判断是否为闰年
var day = isLeap ? 29 : 28; // 计算2月份的天数
var str = isLeap  ? '闰年' : '平年';
console.log( year  + '年2月的天数是' + day + '天,本年为' + str);

2. 根据Date()对象的参数规则来判断

Date() 对象传参时,是会自动纠错的,比如 new Date(2021,1,29) , 参数的意思是将日期设置为 2021年2月29日,但2021年是平年,2月份只有28天,所以最终的日期会被纠正为 2021年3月1日。而如果将年份设置为2020年,即 new Date(2020,1,29),最终日期就是 2020年2月29日,因为2020年是闰年,2月是有29日的。
知道了这个自动纠错的规则,就可以利用它来主动犯错,通过结果来反推年份是否为闰年。

var year = 2020; //要判断的年份
var date = new Date(y, 1, 29); // 参数的年份由y决定,后面两个则是固定值
var isLeap = date.getMonth() == 1; //  true 为闰年,false 为平年
var day = isLeap ? 29 : 28; // 计算2月份的天数
var str = isLeap  ? '闰年' : '平年';
console.log( year  + '年2月的天数是' + day + '天,本年为' + str);

上面代码只适用于 JavaScript 中,但思路是相通的。


Ps: 1582年以前或年份很大(超过3200以上)的日期,计算规则都有所不同,但这个在目前的实际程序中应该不太会用上,所以就不作讨论啦。

相关文章

  • C语言 第四章 选择结构

    [TOC] 第四章选择结构 if...else 和switch学习 优先级 闰年平年计算 闰年平年判断 这个年份能...

  • 平年与闰年的判断方法!

    如何判断这一年是平年还是闰年呢? 方法:看这一年的年份是不是4的倍数。如果年份是4的倍数,那么这一年就是闰年。如我...

  • Java案例-判断给定年份是闰年

    Java案例-判断给定年份是闰年 案例描述 编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (...

  • 平年闰年

    算一下输入的年份是闰年还是平年,若某个年份能被4整除但不能被100整除,则是闰年。若某个年份能被400整除,则也是...

  • 事业单位招聘考试职测备考:日期问题

    日期问题首先涉及到的是闰年,平年。一般能被4整除的年份是闰年,不能被4整除的年份是平年。如:1988年、2008年...

  • 第五章课后习题

    1、编写一个方法,求整数n的阶乘,例如5的阶乘是12345。 2、 编写一个方法,判断该年份是平年还是闰年。 1...

  • 每日一道编程题Python VS C:001-判断闰年

    题目:输入一个年份,判断该年份是否为闰年 提示:闰年的条件为:四年一闰,百年不闰,四百年再闰。 则根据可知核心判断...

  • 第 2 章 C#语言基础应用

    实例1:判断年份是否是闰年 年份如果能被400整除就为闰年,或者指定年份可以整除4但不能整除100也为闰年。实现过...

  • java 面试题闰年判断详解及实例

    java 闰年判断 前言: 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份...

  • 作业

    1、判断一个数是奇数还是偶数 结果: 10是偶数 2、给一个年份,判断是否是闰年 结果: 2016年是闰年2014...

网友评论

      本文标题:JavaScript 根据年份判断是闰年还是平年

      本文链接:https://www.haomeiwen.com/subject/kgoalltx.html