文章
格里高利闰年规则详解
大多数人只学过一个判断闰年的方法:能否被4整除。这个简便方法对日常遇到的几乎所有年份都适用,却恰恰在最关键的时候失效。1900年不是闰年,2100年也不会是,但2000年却是。完整的格里高利规则分三步,它的存在有精确的天文学原因,一旦理解了原因,这些例外就不再显得随意。
三步判断规则
一个年份如果能被4整除,就是闰年。例外情况:如果它同时能被100整除,就不是闰年。例外的例外:如果它还能被400整除,那它终究还是闰年。按顺序应用:2024年通过第一步测试,也不属于任何一种例外,所以有2月29日。1900年能被4和100整除,但不能被400整除,所以仍是365天的平年。2000年能被这三者同时整除,所以是闰年,这也是为什么今天在世的很多人从未真正见过世纪例外发挥作用。下一次将发生在2100年。

历法为什么需要修正
地球绕太阳公转的周期并非整数天。一个回归年,从春分到春分,大约持续365.2422天:365天5小时48分45秒。一部365天的历法因此每年相对季节偏移近6小时,大约每4年偏移一整天。公元前45年引入的儒略历,用每4年一个闰日修正了大部分偏移,使平均年长为365.25天。已经很接近,但仍长了11分14秒。每年11分钟听起来无关紧要,但128年下来会累积成整整一天;到16世纪,春分点在历法中已经提前滑动了约10天,连带把复活节的日期也一起拖动了。
1582年的修正,以及漫长的推行之路
1582年教皇诏书《最重要之事》(Inter gravissimas) 确立的格里高利改革做了两件事。它一次性抹去了累积的偏移:在立即采用新历的国家,1582年10月4日星期四之后紧接着就是1582年10月15日星期五,整整十天被直接跳过。它还改变了此后的闰年规则,通过把不能被400整除的世纪年降格为平年,每400年少设3个闰日。这套历法的推行花了几个世纪。天主教国家在16世纪80年代就已改用;大不列颠及其殖民地一直等到1752年才改用,那时累积的偏差已经涨到11天;俄国直到1918年之后才改用,这也是十月革命按格里高利历计算发生在11月的原因。

修正后的历法有多精确
格里高利历的平均年长为365 + 1/4 - 1/100 + 1/400 = 365.2425天,相对约365.2422天的回归年。剩余误差约为每年27秒,也就是大约每3,200年偏差一天。目前还没有官方规则来修正这最后一点误差;有人提出过在公元4000年前后跳过一个闰年之类的方案,但从未被采纳,而且回归年本身也在缓慢变化,所以为那么遥远的未来立规则意义不大。有一点需要说明:闰日不是闰秒的近亲。闰秒是在秒的尺度上,把原子时(UTC)对齐地球不规则的自转;闰日则是在天的尺度上,把历法对齐地球公转轨道。二者是不同的问题,靠不同的机制解决。
不用背任何东西也能判断某一年
对于世纪年,去掉末尾两个零,再看剩下的数能否被4整除:2000年去掉两个零剩20,能被4整除,是闰年;2100年剩21,不能整除,是平年。对于其他任何年份,只看最后两位数字即可:2038年末两位是38,不能被4整除,是平年。如果你完全不想计算,我们的闰年查询工具能直接告诉你任意一年,无论过去还是未来,是否有2月29日;日期信息工具则能拆解任意日期(年内第几天、周数、当月天数)。两者都完全在你的浏览器中运行:你输入的任何内容都不会发送到任何地方。
本文涉及的工具
常见问题
2100年是闰年吗?
不是。2100年能被4和100整除,但不能被400整除,所以适用世纪例外,2100年2月只有28天。同样的情况发生在1700年、1800年和1900年,也将发生在2200年和2300年。下一个带有2月29日的世纪年是2400年。软件在这方面处理得很好:任何一个正规的日期库都实现了完整的三步规则,所以到了2100年,你的手机不会出错。
为什么多出来的一天落在2月?
因为古罗马历法过去就是在这里收尾。在儒略历之前的罗马历法中,2月是最后一个月,也正是祭司们插入额外时间以重新对齐历法的地方。儒略改革保留了这个习惯:多出的一天是通过把3月历日前第六天重复一次而制造出来的,拉丁语称为"bis sextus",许多语言中表示闰年的词都由此而来。现代历法只是简单地保留了2月作为被拉长的那个月。
其他历法处理方式不同吗?
是的。一些东正教会至今仍在使用的儒略历,沿用简单的每4年一闰规则,目前已经比格里高利历慢了13天。伊朗和阿富汗使用的太阳历(伊朗历)通过天文观测确定闰日,比格里高利规则更精确。阴阳历,比如希伯来历和中国农历,在19年周期中会插入好几次整月的闰月,而不是一个闰日。格里高利历的折中之处在于,仅靠简单的整数运算,就能让历法足够贴近季节。