闰年的计算方法

一:什么是闰年

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

也就我们居住的地球总是绕着太阳旋转的。地球绕太阳转一圈需要365天5时48分46秒,也就是365.2422天。为了方便,一年定为365天,叫做平年;这样每过四年差不多就要多出一天来,把这一天加在2月里,这一年就有366天,叫做闰年。
通常,每四年里有三个平年一个闰年。公历年份是4的倍数的,一般都是闰年。

按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。

也就是我们通常所说的:
四年一闰,百年不闰,四百年再闰。

二:数学中计算闰年的方法
一般的在数学运算中,或者在公历纪年法中,能被4整除的大多是闰年,除了那些能被100整除而不能被400整除的年份以外。

①非世纪年能被4整除,且不能被100整除的是闰年。(如2004年是闰年,1901年不是闰年)
②世纪年能被400整除的是闰年。(如2000年少闰年,1900年不是闰年)


三:闰年的差值计算
现时的公历以回归年为“年”的计算基础,而一个回归年大约等于365.24220日。因为在平年公历只计算365日,结果四年后便会累积0.24220×4=0.9688日,大约等于一日,所以便逢四年增加一日闰日以抵销这0.9688日。但是还是稍微的少了点,这样一时没有多少时间,可是到了一个百年时就会相差了大约0.78天,即多加了。所以要再次规定细节,到100年是不在加,这样又会每100年的时间少了0.22天,到了400年时,差了大约0.9天了,所以那个百年是要再加上润日才可以基本对应的。但是这样仍然会有些许的误差,但是已经相当的小了。我只是大致进行了计算,实际的是相差很小很小的,微乎其微的,但是日积月累却可以百年出“日”的不起眼的小数上。下面就让每我们一起来计算一下这个差值:
使用实际时间计算:
一个回归年大约是:365日5时48分46秒,我们把不足一天的时间转换成秒数:5×3600+48×60+46=20926秒
而一天的秒数是:24×3600=86400秒
我们通常计算的是以400年为一个循环,也就是前面所说的:四年一闰,百年不闰,四百年再闰。
那么400年的时间总共天数和多出的秒数:天数:365×400=146000天,多余秒数:20926×400=8370400秒,
把多出来的秒数转换成天时分秒的形式:96天21小时6分40秒
然后把这个秒数转换成天的小数:8370400/3600/24=96.87962963
数学计算中常用的数值:
我们通常在数值计算中用到一个回归年是365.2422天
那么400年的时间是多少呢?应该是365.2422×400,我们把这个计算式分解下,365×400+0.2422*400,其中365×400和前面的一样,我们这里就不再次计算,我们只算0.2422*400=96.88天
这个96.88天数减去实际天数96.87962963:96.88-96.87962963=0.00037037天
而0.00037037天转换成秒:0.00037037×24×3600=31.999968秒,大约是32秒
验证是否相差32秒:
把96.88天的0.88天转换成秒数:0.88×86400=76032
把76032秒转换成天时分秒的形式:96天21小时7分12秒

结论:
通过以上数据的计算,我们可以看出每年以365.2422天计算400年为周期,和实际直接的差值是32秒,也就是400年有32秒的误差。
但是我们实际计算400年都是按97个润计算,也就是97天 - 96天21小时6分40秒=2小时53分20秒的误差。
可能有人会问了,时间长了也是有误差的啊?你说的对,咱们来计算一下误差一天要经过多少年:每天的秒数是86400,除以32,然后再乘以400:86400/32*400=108000年,也就是要经过100多万年会多出1天的误差,在时间的长河中,人的有生之年相对于108万年有这样的误差存在已经是微乎其微了,可以忽略不计了。就算以2小时53分20秒的误差计算:400*86400/(2*3600+53*60+20)=3323.077年,也需要经过3000多年的时间会多出一天的时间误差。
具体使用那个数值?需要精确度到多少?,使用哪一个数值取决于你自己了,我这里只是告诉你各个数值之间的误差。
声明:当然我这里的计算也是有误差的,我这里只精确到秒。

参考:
http://zhidao.baidu.com/link?url=NUkieJI81Aqstmo9lOYBgQMc1bMw2mYXHAF-hFuZHIpVgCLx4xmgU-L4Um468mwPz4tdL9Lx0qY-gZZjFcZWNq
http://zhidao.baidu.com/link?url=ubMA8QtC2PouuzZvn_EJDgnxg-qumwSQxG6Z-C3OKHtvsriAkwH7K4zRXjk4n_5K44-IMChZvWI6gUM1lJkREa
http://zhidao.baidu.com/question/8407108.html

闰年的计算方法

上一篇:update语句


下一篇:读取组织人员信息的权限PLOG