世界之大,真的是无奇不有!
听有人说这是有诀窍的.不知道有没有愿意和我分享?
只要记住12个系数就行,这12个系数就是12个月的一号是星期几,再减1。
如7月1日是星期天,系数就是7-1=6,2月1日是星期四,系数就是3,口算时只要用该日期加该月系数,再除以7,如能整除,这一天就是星期天;如不能整除,余数是几就是星期几。
道理很简单,12个系数是必背的,当然每年都不同,就当是手机号码应该很容易背,背一次用一年,很值!在朋友面前露一手,说不定他们还称奇。
网上搜的,供参考。
历史上的某一天是星期几?未来的某一天是星期几?关于这个问题有这样的一种算法介绍如下:
某年某月某日是星期几的推算公式:
〔(χ-1)+“(χ-1)/4”-“(χ-1)/100”+“(χ-1)/400”+y〕÷7
这个公式中的χ表示那一年的公历年份数,y表示某日在那一年的第几天,“”表示整数商。计算所得的余数就是星期几(余数为0则是星期日)。
例1、 1980年6月1日是星期几?
分析:χ-1=1980-1=1979,“(χ-1)/4”=494,“(χ-1)/100”=19,
“(χ-1)/400”=4;y=31+29+31+30+31+1=153(天)。
解:(1979+494-19+4+153)÷7=2611÷7=373(余数为0)。
所以,1980年6月1日是星期日。
一、年码的计算
(1)21世纪年码算法:mod(X+int(X/4),7)
(X代表年份的后三位数字,如:2015年,这里X就代表15,int代表向下取整,mod代表取余)
(2)其它世纪的年码算法:
20世纪年码=21世纪年码+1,即 mod(X+int(X/4),7)+1
19世纪年码=21世纪年码+3,即 mod(X+int(X/4),7)+3
18世纪年码=22世纪年码=21世纪年码+5(或减2),即mod(X+int(X/4),7)+5
二、牢记月码
(1)任何世纪中的任何年份对应的月码都是相同的,十二个月分别对应的月码是:
51(26)2503514624(括号内的数字代表闰年时1月、2月的月码)
记忆方法:平年1、4、7月为5;2、8月为1;3、11月为2;5月为0;6月为3;9、12月为4;10月为6。闰年只需变1月为2,2月为6。
(2)闰年的通俗理解:平时除以4,逢千年除以400,整除者为闰年。
C语言描述为:(year%4==0&&year%100==0) || (year%400==0)
或 (n mod 4=0) and (n mod 100<>0)) or (n mod 400=0)
三、写下日码
日码最易得到,就是日期里的号数,例如: 8月20日,日码就是20。
四、最后的计算
算法:mod (年码+月码+日码,7)=星期几
若余数是0,即为星期日,余数为1即是星期一,如此类推!
五、整理思路
口诀:口算年码,牢记月码,写出日码,三者相加,和与七除,答案为余.
文章引用自:
如7月1日是星期天,系数就是7-1=6,2月1日是星期四,系数就是3,口算时只要用该日期加该月系数,再除以7,如能整除,这一天就是星期天;如不能整除,余数是几就是星期几。
道理很简单,12个系数是必背的,当然每年都不同,就当是手机号码应该很容易背,背一次用一年,很值!在朋友面前露一手,说不定他们还称奇。
网上搜的,供参考。
历史上的某一天是星期几?未来的某一天是星期几?关于这个问题有这样的一种算法介绍如下:
某年某月某日是星期几的推算公式:
〔(χ-1)+“(χ-1)/4”-“(χ-1)/100”+“(χ-1)/400”+y〕÷7
这个公式中的χ表示那一年的公历年份数,y表示某日在那一年的第几天,“”表示整数商。计算所得的余数就是星期几(余数为0则是星期日)。
例1、 1980年6月1日是星期几?
分析:χ-1=1980-1=1979,“(χ-1)/4”=494,“(χ-1)/100”=19,
“(χ-1)/400”=4;y=31+29+31+30+31+1=153(天)。
解:(1979+494-19+4+153)÷7=2611÷7=373(余数为0)。
所以,1980年6月1日是星期日。
一、年码的计算
(1)21世纪年码算法:mod(X+int(X/4),7)
(X代表年份的后三位数字,如:2015年,这里X就代表15,int代表向下取整,mod代表取余)
(2)其它世纪的年码算法:
20世纪年码=21世纪年码+1,即 mod(X+int(X/4),7)+1
19世纪年码=21世纪年码+3,即 mod(X+int(X/4),7)+3
18世纪年码=22世纪年码=21世纪年码+5(或减2),即mod(X+int(X/4),7)+5
二、牢记月码
(1)任何世纪中的任何年份对应的月码都是相同的,十二个月分别对应的月码是:
51(26)2503514624(括号内的数字代表闰年时1月、2月的月码)
记忆方法:平年1、4、7月为5;2、8月为1;3、11月为2;5月为0;6月为3;9、12月为4;10月为6。闰年只需变1月为2,2月为6。
(2)闰年的通俗理解:平时除以4,逢千年除以400,整除者为闰年。
C语言描述为:(year%4==0&&year%100==0) || (year%400==0)
或 (n mod 4=0) and (n mod 100<>0)) or (n mod 400=0)
三、写下日码
日码最易得到,就是日期里的号数,例如: 8月20日,日码就是20。
四、最后的计算
算法:mod (年码+月码+日码,7)=星期几
若余数是0,即为星期日,余数为1即是星期一,如此类推!
五、整理思路
口诀:口算年码,牢记月码,写出日码,三者相加,和与七除,答案为余.
文章引用自:
温馨提示:答案为网友推荐,仅供参考
第1个回答 2008-04-02
十二个月所对应的数字依次是
1,4,4,0,2,5,0,3,6,1,4,6
1994年是:5 1 1 4 6 2 4 0 3 5 1 3
这一串数字就能很快地心算出1994年任何一天是星期几。这在手头无年历可查的情况下还是有一定用处的。在那一段我们还列出了最近几年每年对应的十二个数字,用这种方法计算最近几年某年某月是星期几也都还方便。
但是要计算自古至今以至遥远未来的公元某年某月某日是星期几,因为手头很难有那一年的年历,那一年相应的十二个数字不易获得,所以那种方法不适用了。
本段要介绍的是计算我们现在使用的历法实行以来或未来公元某年某月某日是星期几的一个方法。
先介绍一个算式:
其中 是公元的年数,C是从这一年的元旦算起到这一天为止(包括这一天是内)的天数。方括号表示其中算式的整数部分,即在计算S的值时,三个方括号中只要算出商数的整数部分,把余数略去不计。
求出S的值之后,除以7,余几就是星期几;除尽了就是星期日。
如我们计算一下西安事变发生在星期几。
解 西安事变发生在1936年12月12日,所以x=1936 C=347于是可得:=1935+483-19+4+347=2750
2750÷7=392………6,
所以西安事变发生在星期六。
我们再来计算一下1994年12月25日是星期几;此时 x=1994 C=359于是可得 :
=1993+498-19+4+359 =2835
2835÷7=405,无余数,
所以,1994年圣诞节是星期日。
这个计算方法根据的是每四年一闰、百年不闰、四百年再闰的历法,即格里历。格里历是从公元1582年开始实行的,所以,用这个方法可以计算公元1582年以后某年某月某日是星期几。
1,4,4,0,2,5,0,3,6,1,4,6
1994年是:5 1 1 4 6 2 4 0 3 5 1 3
这一串数字就能很快地心算出1994年任何一天是星期几。这在手头无年历可查的情况下还是有一定用处的。在那一段我们还列出了最近几年每年对应的十二个数字,用这种方法计算最近几年某年某月是星期几也都还方便。
但是要计算自古至今以至遥远未来的公元某年某月某日是星期几,因为手头很难有那一年的年历,那一年相应的十二个数字不易获得,所以那种方法不适用了。
本段要介绍的是计算我们现在使用的历法实行以来或未来公元某年某月某日是星期几的一个方法。
先介绍一个算式:
其中 是公元的年数,C是从这一年的元旦算起到这一天为止(包括这一天是内)的天数。方括号表示其中算式的整数部分,即在计算S的值时,三个方括号中只要算出商数的整数部分,把余数略去不计。
求出S的值之后,除以7,余几就是星期几;除尽了就是星期日。
如我们计算一下西安事变发生在星期几。
解 西安事变发生在1936年12月12日,所以x=1936 C=347于是可得:=1935+483-19+4+347=2750
2750÷7=392………6,
所以西安事变发生在星期六。
我们再来计算一下1994年12月25日是星期几;此时 x=1994 C=359于是可得 :
=1993+498-19+4+359 =2835
2835÷7=405,无余数,
所以,1994年圣诞节是星期日。
这个计算方法根据的是每四年一闰、百年不闰、四百年再闰的历法,即格里历。格里历是从公元1582年开始实行的,所以,用这个方法可以计算公元1582年以后某年某月某日是星期几。
第2个回答 2008-04-03
是啊,我也听过这是有公式可以算出来的,不过至今也没有人告诉我
第3个回答 2008-04-02
是啊,我也听过这是有公式可以算出来的,不过至今也没有人告诉我,我也想知道