首页
社区
课程
招聘
[原创]万年历巧算星期几
发表于: 2008-11-12 14:20 3378

[原创]万年历巧算星期几

2008-11-12 14:20
3378
  只要随便说出公元几几年几月几日就可以马上算出是星期几,你相信吗?读者姚江啸就有这样的办法,他花了一年多时间,寻找出了这样一个计算方法,大家来看看吧!

  只要计算出日的代码,月份代码,年份代码。三个加起来除以七的余数就是星期几,(如余数是三,则就是星期三)。

  日的代码计算:日的代码最简单,就是它本身,是几号就是几

  月份代码计算:月份代码也很简单,下面有十二个数:144725736146,分别代表一至十二月份每个月的代码。比如,九月份的代码为6。(据姚江啸介绍,他是用逆推的方法,计算出这12个月份代码的,即知道某年某月某日是星期几,反过来推算月份代码。)

  年份代码计算:年份代码相对比较复杂,先记住2000年对应的年份代码是4,这是基础代码,牢记即可。

  假如大于2000年,比如2010年,则对应的年份代码是(2010-2000)÷4=2……2,再用基数代码4减去2倍的商加上余数再加1。即4-2×2+2+1=3,则2010年对应的年份代码为3。如果没有余数,即闰年,则余数后面的1也不用加。比如2008年,对应的年份代码为0。

  假如小于2000年,比如1991年,则对应的年份代码是(2000-1991)÷4=2……1,再用基数代码4加上2倍的商减去余数。 即4+2×2-1=7,则1991年对应的年份代码为7。

  再记住一个特殊情况,即闰年的3到12月份到最后要加1。   

  举个例子吧,比如1992年8月27日。则(2000-1992)÷2=2……0,再4+2×2-0=8,年份代码计算结果为8,加上8月份的代码3,再加上日的代码27,因为是闰年,所以还要加1,等于39。再除以七的余数为4,则这一天为星期四。

以上内容摘自《钱江晚报》2008年7月25日 第B0006版:生活家

乐天补注:

  假如我们只是要计算今年任意日期是星期几,有没有更简单的方法?

  首先我们计算一下2008年年份代码:
  (2008-2000)/4=2......0
  4-2*2+0=0 没有余数,则余数后面的1也不用加。

  由于2008年年份代码为0且为闰年(一个特殊情况,即闰年的3到12月份到最后要加1),得出新月份代码为:145136147257。

下面我们使用新月份代码计算一下今天(2008-11-12)是星期几:

  新月份代码十一月份的代码加上日的代码除以7 (5+12)/7=2......3 余数是3,则今天是星期三。

不太相信?那么我们再多计算几个:

  2008-01-18 (1+18)/7=2......5 则2008-01-18是星期五
  2008-03-23 (5+23)/7=4......0 则2008-03-23是星期日
  2008-08-09 (4+9)/7=1......6 则2008-08-09是星期六
  2008-12-01 (7+1)/7=1......1 则2008-12-01是星期一

  我们得出的新月份代码只适用于今年(2008年),只要记住它叫你的朋友任意说出一个今年的日期,你都可以轻松算出星期几,很酷吧!

用以上的方法乐天给大家算出了2009、2010年的新月份代码:

  2009年新月份代码:366247251361
  2010年新月份代码:477351362472

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
真的很酷!
露一手
2008-11-12 18:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
顶,方法太好玩了!
2008-11-13 23:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那月份的代码还是要知道一个日期是星期几以后才能得出来了?感觉比较复杂。
2008-11-24 13:03
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
ls的没看懂
2008-11-26 08:47
0
游客
登录 | 注册 方可回帖
返回
//