现在的位置: 首页 > 综合 > 正文

算出某天是星期几(

2012年08月29日 ⁄ 综合 ⁄ 共 1023字 ⁄ 字号 评论关闭

网上一搜,找到一个20多年前即存在的一个死板但有效的方法:

 

死记硬背公式法:

 


 

如year/month/day

 

 

星期几= (day+ 月值 + 常数值)%7 (求余)

 

其中(对于2007 年来说,这12个月值数字为前一个月最后一天的星期数)

         1月  2月  3月  4月  5月  6月  7月  8月  9 月  10月  11月  12月

月值=   0     3    3    6     1     4     6     2      5    0       3      5

 

那其他年份的月值呢?

2008年:145136140250

2009年:366240251361

2010年:400351362402

 



 

             2005年   2006年   2007年   2008年  2009年  2010年 2011年  2012年

 常数值=     0          1           2           3         4          5        6          7

 

常数值一般是一年有一个值对应着,如果是润年,以二月二十九日为界一年有两个值。

常数值每遇新年的1月1号就增加1(如2008年是3,2009年是4,2010年是5),每过2月29日也加1

 


那对于其他年份呢?只需将常数值变动下,规则如下:

  年份常数值计算:年份常数值相对比较复杂,先记住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版:生活家

 

屡试不爽? 

抱歉!评论已关闭.