素素收集整理
计算一个年份是否是闰年,其关键是闰年的算法。谭老师在《C程序设计(第二版)》第16页提到闰年的条件是(1)能被4整除,但不能被100整除的年份都是闰年,例如1996年、2004年是闰年;(2)能被100整除,又能被400整除的年份是闰年。如1600年、2000年是闰年。不符合这两个条件的年份不是闰年。
闰年的这两个条件是怎么来的呢?要深刻理解闰年的算法,还要从闰年的来历说起。
我们居住的地球总是绕着太阳旋转的,地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒,也就是365.2422日。
为了方便,记为365日,叫做平年。平年一年有365日,比回归年短0.2422日,四年共短0.9688 日,故每四年增加一日,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900 年、2100年就不是闰年。
也就是我们通常所说的:四年一闰,百年不闰,四百年再闰。
这里再聊聊儒略历与格里历(公历)。
儒略历是现今国际通用的公历的前身。西方国家16世纪前大多采用它。它是由罗马统帅儒略·恺撒在希腊数学家兼天文学家索西琴尼的帮助下制订实行的,在公元前46年1月1日起执行,取代旧罗马历法的一种历法。所以人们就把这一历法称为儒略历。
儒略历以回归年为基本单位,是一部纯粹的阳历。它将全年分为12个月,单数月是大月,长31日,双月是小月,长为30日,只有2月平年是29日,闰年30日。全年平年365日,每四年一闰,闰年366日,每年平均长度是365.25日。儒略历编制好后,儒略·恺撒的继承人奥古斯都又从2月减去一日加上8月(8月的拉丁名即他的名字奥古斯都,又把9月、11月改为小月,10月、12月改为大月。
儒略历制定后后,被认为是准确无误的历法, 于是人们在公元325年把3月21日固定为春分日,却带来了未曾料想到的麻烦。随着时间的推移,人们发觉,真正的春分不再与当时的日历一致,这个昼夜相等的日期越来越早,到16世纪末已提前到3月11日了。 春分逐渐提前,是由于儒略历并非最精确的历法,它的历年平均长度等于365.25日,还是比回归年365.2422日长了11分14秒,即0.0078日,这个差数虽然不大,但累积下去,128年就差一天,400年就差多出3.12日。
为此,当时的罗马教皇格里高利十三世设立了改革历法的专门委员会,比较了各种方案后, 决定采用意大利医生利里奥的方案,在400年中去掉儒略历多出的三个闰年。 1582年3月1日,格里高利颁发了改历命令,内容是:
一、1582年10月4日后的一天是10月15日,而不是10月5日,但星期序号仍然连续计算,10月4日是星期四,第二天10月15日是星期五。这样,就把从公元325年以来积累的老账一笔勾销了。
二、为避免以后再发生春分飘离的现象,改闰年方法为: 凡公元年数能被4整除的是闰年,但当公元年数后边是带两个“〇”的“世纪年”时,必须能被400整除的年才是闰年。
格里高利历的历年平均长度为365日5时49分12秒,比回归年长26秒。虽然照此计算,过3000年左右仍存在1天的误差,但这样的精确度已经相当了不起了。
由于格里高利历的内容比较简洁,便于记忆,而且精度较高,与天时符合较好,因此它逐步为各国政府所采用。我国是在辛亥革命后根据临时政府通电,从1912年1月1日正式使用格里高利历的。
|