判断闰年的算法

当我们遇到这个问题时,大家都知道该怎么计算,那就是所谓的:四年一闰,百年不闰,四百年再闰。

根据这个写出的程序的核心算法就是:

if((n%4 == 0 && n%100 != 0) || n %400 == 0)

{}

但是到底是为什么要这么算呢,本来按照我自己的理解,好像只要是4的倍数就应该是闰年,所以对这个算法一直没有深入的理解,一直不知道它的原理,所以就自己搜了一下资料,了解了一下,终于弄明白了;

关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。

这就是我们经常听到的闰年判断方法的由来了:即四年一闰,百年不闰,四百年再闰。

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值