导航

<2006年10月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

随笔分类

随笔档案

文章档案

相册

        两天前我解答 [shutle] 网友计算闰年方法的时候,回答错误,在这里一并更正并致歉。后来查阅了资料,现把计算方法和原理粘贴一下:

        我们知道地球自转一圈为1天,地球围绕太阳公转一圈为1年。那1年到底等于多少天哪?答案是:1年=365天5小时48分46秒,即 365.242199[074] 天(注:用[xxx]表示无限循环)

因此,4年 = 4*365.242199[074] = 4*365 + 0.9687[962] 天
显然,每隔4年,就要多出了将近1天,因此公元历法就定义㈠:每4年加一天,即闰年(366天)
那么,也就是说4年就多算了:1-0.9687[962] = 0.0312[037]天

        照这样算下去,100年中有25次闰年,那么就会多计算了 25*0.0312[037]=0.7800[925] 天,这又太接近1天了,因此公元历法就定义㈡:每100年的那年不算闰年
于是:
    100年中就又会少算 1-0.7800[925]=0.2199[074] 天
    200年会少算 2*0.2199[074] = 0.439[814] 天
    300年会少算 3*0.2199[074] = 0.6597[2] 天
    400年会少算 4*0.2199[074] = 0.87[962] 天

停!400年后的误差又接近1天了,于是公元历法进行修正㈢:400年的那年(虽然是100年的倍数),但又算闰年啦。于是,400年的时候,由于多算了一次闰年,那么,
每隔400年就会多算:1-0.87[962] = 0.12[037] 天

        显然,等到4000年的时候(那时,看到这个帖子的人都死了2000年了),误差又到1天多了,也许那个时候公元历法有会进行修改了“每4000年少一个闰年”。哈哈,反正不管我们的事了。但也不尽然,因为地球的自转很不稳定,但总的趋势是每年要慢一丁点(大家是否还记得今年2006年元旦,全世界的人都要把表拨慢1秒钟?)由于阴差阳错,也许4000年后并不需要少算一个闰年也不一定呐。总结一下闰年的算法:
㈠ 每4年一闰        ㈡ 每100年的那年不闰        ㈢ 每400年的那年又闰
真罗嗦,用咱们IT人的话说,就是能被4整除但不能被100整除,可是却能被400整除的年是闰年

posted on 2006-10-16 02:41 杨老师的茅屋 阅读(2783) 评论(8)  编辑 收藏
评论
  • # re: 闰年的计算
    左手无情
    Posted @ 2006-10-16 06:50
    原来是这样。谢谢了。长见识了!
  • # re: 闰年的计算
    usr_root
    Posted @ 2006-10-20 09:42
    您老啥时候回答过问题啊,骗人
  • # re: 闰年的计算
    玻璃小屋
    Posted @ 2006-10-24 10:24

    赶明让地球倒转两天。。。。。
  • # re: 闰年的计算
    hugo-cat
    Posted @ 2006-10-25 08:00
    算法是这样子的吧:
    BOOL IsLeapYear(int nYear)
    {
       return (nYear%4 && nYear%/400 || nYear%100);
    }
  • # re: 闰年的计算
    neu_linux
    Posted @ 2006-12-15 13:50
    搜了这么多的闰年定义,只有这里在讲道理,那些只给出(nYear%4 && nYear%/400 || nYear%100)的人多半知其然,不知其所以然,但是整个网络又被这些实用主义充斥着,所以来到这里感到很亲切,特意写下这些,表示我的感谢!
  • # re: 闰年的计算

    Posted @ 2006-12-24 11:09
    2000年到底是不是闰年呢??
  • # re: 闰年的计算
    peter
    Posted @ 2007-08-13 10:30
    闰年算法:能被4整除但不能被100整除,可是却能被400整除的年
    实现如下:
    #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
  • # re: 闰年的计算
    一笑而过
    Posted @ 2008-08-23 14:31
    呵呵,说得蛮有道理的。
标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]

统计