服不服?

不服就证明给自己看

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  6 随笔 :: 8 文章 :: 6 评论 :: 0 Trackbacks

        两天前我解答 [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 2007-12-12 13:37 我的梦想我的游戏 阅读(454) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理