万年历巧算星期几
只要随便说出公元几几年几月几日就可以马上算出是[url=http://www.ofly.cn/blog/article.asp?id=23][color=black]星期几[/color][/url],你相信吗?读者姚江啸就有这样的办法,他花了一年多时间,寻找出了这样一个计算方法,大家来看看吧!只要计算出日的代码,月份代码,年份代码。三个加起来除以七的余数就是星期几,(如余数是三,则就是星期三)。
日的代码计算:日的代码最简单,就是它本身,是几号就是几[url=http://www.ofly.cn/blog/article.asp?id=23][color=black]。[/color][/url]
月份代码计算:月份代码也很简单,下面有十二个数:144725736146,分别代表一至十二月份每个月的代码。比如,九月份的代码为6。(据姚江啸介绍,他是用逆推的方法,计算出这12个月份代码的,即知道某年某月某日是星期几,反过来推算月份代码。)
年份代码计算:年份代码相对比较复杂,先记住2000年对应的年份代码是4,这是基础代码,牢记即可。
假如大于2000年,比如2010年,则对应的年份代码是(2010-2000)÷4=2……2,再用基数代码4减去2倍的商加上余数再加1。即4-2×2+2+1=3,则2010年对应的年份代码为3。[u]如果没有余数,即闰年,则余数后面的1也不用加。[/u]比如2008年,对应的年份代码为0。
假如小于2000年,比如1991年,则对应的年份代码是(2000-1991)÷4=2……1,再用基数代码4加上2倍的商减去余数。 即4+2×2-1=7,则1991年对应的年份代码为7。
[u]再记住一个特殊情况,即闰年的3到12月份到最后要加1。[/u]
举个例子吧,比如1992年8月27日。则(2000-1992)÷2=2……0,再4+2×2-0=8,年份代码计算结果为8,加上8月份的代码3,再加上日的代码27,因为是闰年,所以还要加1,等于39。再除以七的余数为4,则这一天为星期四。
以上内容摘自《钱江晚报》2008年7月25日 第B0006版:生活家
[b]乐天补注:[/b]
假如我们只是要计算今年任意日期是星期几,有没有更简单的方法?
首先我们计算一下2008年年份代码:
(2008-2000)/4=2......0
4-2*2+0=0 [color=red]没有余数,则余数后面的1也不用加。[/color]
由于2008年年份代码为0且为闰年([color=red]一个特殊情况,即闰年的3到12月份到最后要加1[/color]),得出[i]新月份代码[/i]为: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年),只要记住它叫你的朋友任意说出一个今年的日期,你都可以轻松算出星期几,很酷吧!
用以上的方法[url=http://www.ofly.cn/blog/][color=black]乐天[/color][/url]给大家算出了2009、2010年的新月份代码:
2009年新月份代码:366247251361
2010年新月份代码:477351362472 嘿嘿
做个记号! 麻烦,我还是直接查万年历好了 这个算法太复杂了 [quote]原帖由 [i]18601[/i] 于 2008-11-12 17:26 发表 [url=http://im286.com/redirect.php?goto=findpost&pid=31088341&ptid=3032849][img]http://im286.com/images/common/back.gif[/img][/url]
这个算法太复杂了 [/quote]
页:
[1]
