闰年的计算

作为一个程序员,有时会碰到闰年的判断,那么到底神马是闰年呢,又为什么会有闰年这种说法呢。下面资料摘至WIKI:

一、闰年的定义

闰年是比普通年份多出一段时间的年份,在各种历法中都有出现,目的是为了弥补人为规定的纪年与地球公转产生的差异。

二、闰年的起因

若以阳历为例,“年”的计算基础是回归年,而一个回归年大约等于365.24220日。因为在平年西历只计算365日,结果四年后便会累积0.24220×4=0.9688日,大约等于一日,所以便逢四年增加一日闰日以抵销这0.9688日。 然而,累积4年后多的0.96876天,与真正的1日尚差0.03124天,故如果不间断地按照4年1闰的方式修正,百年后将累积成365×100+25=36525日,比真正的1世纪日数365.24219×100=36524.219多。因此历法学家便重新规定闰年的规则为:西元年份逢4的倍数闰、100的倍数不闰、400的倍数闰、4000的倍数不闰。例如:公元1992、1996年等为4的倍数,故为闰年;公元1800、1900、2100年为100的倍数,当年不闰;公元1600、2000、2400年为400的倍数,有闰;而公元4000、8000年为4000的倍数,则不闰。

三、闰年规则

目前使用的格里历闰年规则如下:
1.西元年份除以400可整除,为闰年。
2.西元年份除以4可整除并且除以100不可整除,为闰年。
3.西元年份除以4不可整除,为平年。
4.西元年份除以100可整除并且除以400不可整除,为平年
算法:

if (西元年份是400的倍数)闰年

else if (西元年份是4的倍&& 西元年份不是100的倍数) 闰年

else 平年


每逢闰年,2月份有29日,平年的2月份为28日。
因此,2057年为平年,2060年逢4的倍数为闰年,1900年逢100的倍数但非400的倍数故为平年,2000年逢400的倍数又为闰年。
此外,如依照现有太阳年的长度与上述闰年规则,每8000年又约差一日,因此约翰·赫歇尔提议每逢4000的倍数不闰,如公元4000年。但距此一年份来临尚有约二千年之遥,因此还未曾真正纳入规则或实施过。又由于地球公转速率的不稳定与众多影响因素,届时是否需要纳入此规则仍有疑问。



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值