不翻日历,怎样算出任意一天是星期几?

如题所述

利用蔡勒公式进行计算:

w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

公式中的符号含义如下,w:星期;c:世纪;y:年(两位数); m:月(m大于等于3,小于等于14。

即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);

d:日;[ ]代表取整,即只要整数部分。相比于通用通用计算公式而言,蔡勒(Zeller)公式大大降低了计算的复杂度。

扩展资料

其他公式

基姆拉尔森计算公式

W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日数,m表示月份数,y表示年数。

注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

参考资料来源:百度百科-蔡勒公式

参考资料来源:百度百科-基姆拉尔森计算公式

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
根据历法原理,按照下面的公式计算,就可以知道某年某月某日是星期几了。
这个公式是:

S=X-1+(X-1)/4-(X-1)/100+(X-1)/400+C
这里X是年数,C是从这一年的元旦算到这天为止(包括这一天在内)的日数。[(X-1)/4]表示为[(X-1)/4]的整数部分;在计算S时,三个分数式只要商数的整数部分,余数略去不计,再把其他几项依次加减,就可以得到S。

求出S后,用7除,如果能除尽,这一天一定是星期天;若有余数,余数为1时,那么这天就是星期一;余数为2,就是星期二,依此类推。
例:1949年10月1日,中华人民共和国成立的日子,这天是星期几?
S=1949-1+(1949-1)/4 -(1949-1)/100+(1949-1)/400+(31+28+31+30+31+30+31+31+30+1)=2694
S=2694,再算2694÷7,得知余数为6,所以这天是星期六。本回答被网友采纳
第2个回答  2014-05-14
根据历法原理,按照下面的公式计算,就可以知道某年某月某日是星期几了。
这个公式是:

S=X-1+(X-1)/4-(X-1)/100+(X-1)/400+C
这里X是年数,C是从这一年的元旦算到这天为止(包括这一天在内)的日数。[(X-1)/4]表示为[(X-1)/4]的整数部分;在计算S时,三个分数式只要商数的整数部分,余数略去不计,再把其他几项依次加减,就可以得到S。

求出S后,用7除,如果能除尽,这一天一定是星期天;若有余数,余数为1时,那么这天就是星期一;余数为2,就是星期二,依此类推。
例:1949年10月1日,中华人民共和国成立的日子,这天是星期几?
S=1949-1+(1949-1)/4 -(1949-1)/100+(1949-1)/400+(31+28+31+30+31+30+31+31+30+1)=2694
S=2694,再算2694÷7,得知余数为6,所以这天是星期六。
相似回答