关于计算某年某月某日是星期几的公式的推导
小学趣味数学——根据年、月、日推算是星期几的公式
![小学趣味数学——根据年、月、日推算是星期几的公式](https://img.taocdn.com/s3/m/db68e09408a1284ac9504317.png)
小学趣味数学——根据年、月、日推算是星期几的公式 有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来:这里的方括号表示只取商的整数部分。
式中:x :这一年是公元多少年。
y :这一天是这一年的第几天。
s :星期几。
不过要先除以7,再取余数。
没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。
比如,2010年国庆节(10月1日)是星期几?x =2010。
y =31+28+31+30+31+30+31+31+30+1=31×5+30×3+28+1=274。
s =2010-1+502-20+5+274=2770,2770÷7余5。
所以,2010年国庆节是星期五。
y x x x x s +⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--⎥⎦⎤⎢⎣⎡-+-=40011001411如果,你只想知道这个公式怎样用,到这儿就可以了。
而要想知道这个公式的道理是什么,那可就说来话长了。
“星期制”是公元321年3月7日,古罗马皇帝君士坦丁宣布开始实行的,并且规定这一天为星期一。
实际上,就是把公元元年元旦(公元1年1月1日)规定为星期一。
(相当于公式中的x=1,y=1,所以s=1。
)通常1年有365天,365÷7=52……1,就是说比52个星期多1天。
所以,同一个日期,下一年是星期几,就要比上一年向后推1天。
比如,上一年元旦是星期三,下一年元旦就是星期四。
“通常每过1年,把同一日期是星期几向后推1天”,是理解这个公式的关键。
要想知道某年某月某日是星期几,首先,要知道这一年元旦以公元元年元旦是星期一为起点,已经把星期几向后推了多少天,还要知道这一天是这一年的第几天。
而要知道这一年元旦已经把星期几向后推了多少天,可以从公元元年到这一年已经过了多少年算起,先按1年向后推1天计算,再根据闰年的规定进行调整。
闰年的规定是:年份是4的倍数的一般都是闰年,其中,年份是整百数的一般不是闰年,只有年份是400的倍数的才是闰年。
给出年月日,计算星期几--算法及算法来历
![给出年月日,计算星期几--算法及算法来历](https://img.taocdn.com/s3/m/0697184ff7ec4afe04a1df52.png)
= 2524;
2524 / 7 = 360……4.这和实际是一致的。
公式(5)已经是从年、月、日来算星期几的公式了,但它还不是最简练的,对于年份的处理还有改进的方法。我们先来用这个公式算出每个世纪第一年3月1日的星期,列表如下:
因为其中的-7和(M-1)*28两项都可以被7整除,所以去掉这两项,W除以7的余数不变,公式变成:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] + d.
(5)
D = [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d. (3≤M≤14) (4)
上面计算星期几的公式,也就可以进一步简化成:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d.
(Y-1)*365 ≡ Y-1 (mod 7).
其中,≡是数论中表示同余的符号,mod 7的意思是指在用7作模数(也就是除数)的情况下≡号两边的数是同余的。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到了那个著名的、也是最常见到的计算星期几的公式:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (2)
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
给出年月日计算星期几
![给出年月日计算星期几](https://img.taocdn.com/s3/m/2c3f51d288eb172ded630b1c59eef8c75fbf957a.png)
【转】给出年月日,计算星期几--算法及算法来历最常见的公式:W =[Y-1] + [(Y-1)/4] -[(Y-1)/100] + [(Y-1)/400] + DY是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
最好用的是蔡勒公式:W = [C/4]- 2C+ y + [y/4] + [13 *(M+1) / 5] + d- 1C是世纪数减一,y是年份后两位,M是月份,d是日数。
1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。
两个公式中的[...]均指只取计算结果的整数部分。
算出来的W除以7,余数是几就是星期几。
如果余数是0,则为星期日。
---------------------------------------------------------------------------星期制度是一种有古老传统的制度。
据说因为《圣经·创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。
从实际的角度来讲,以七天为一个周期,长短也比较合适。
所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
在日常生活中,我们常常遇到要知道某一天是星期几的问题。
有时候,我们还想知道历史上某一天是星期几。
通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。
假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。
三年级数学年月日之星期计算
![三年级数学年月日之星期计算](https://img.taocdn.com/s3/m/f1457cb526fff705cc170ace.png)
【第一个31指开始的5月总天数,30和第二个31指的是中间的6月和7月总天数】
星期计算例子
【同一月】2019年5月21日是星期二,那么5月3日是星期几?5月31日是星期几?
(21-3)÷7=2余4,因为是过去,逆推得5月3日是星期五;
(31-21)÷7=1余3,因为是未来,顺推得5月31日是星期五。
【跨一月】2019年5月21日是星期二,那么4月28日星期几6月7日是星期几
(21+30-28)÷7=3余2,因为是过去,逆推得4月28日是星期日;【30指开始的4月总天数】
(7+31-21)÷7=2余3,因为是未来,顺推得6月7日是星期五。【31指开始的5月总天数】
【跨多月】2019年5月21日是星期二,那么3月18日星期几?8月2日是星期几?
(21+31+30-18)÷7=9余1,因为是过去,逆推得3月18日是星期一;
【31指开始的3月总天数,30指中间的4月总天数】
三年级数学年月日之星期计算
星期计算:【跨多月不多见,但注意中间月份可以有多个】
第一步计算
第二步计算同一月:(后面日期-开始日源自)÷7①看余数,余数是几就推几
②算的是过去,用逆推
算的是未来,用顺推
跨一月:(后面日期+开始月份总天数-开始日期)÷7
跨多月:
(后面日期+开始月份总天数+中间月份总天数-开始日期)÷7
计算某天是星期几
![计算某天是星期几](https://img.taocdn.com/s3/m/1fa356f5ba0d4a7302763a4b.png)
计算某天是星期几(含六个例程)计算某天是星期几,最常见的公式: W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
计算某天是星期几,最常见的公式:W=[Y-1]+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+DY是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
最好用的是蔡勒公式:W=[C/4]-2C+y+[y/4]+[13*(M+1)/5]+d-1C是世纪数减一,y是年份后两位,M是月份,d是日数。
1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。
两个公式中的[...]均指只取计算结果的整数部分。
算出来的W除以7,余数是几就是星期几。
如果余数是0,则为星期日。
星期制度是一种有古老传统的制度。
据说因为《圣经〃创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。
从实际的角度来讲,以七天为一个周期,长短也比较合适。
所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
在日常生活中,我们常常遇到要知道某一天是星期几的问题。
有时候,我们还想知道历史上某一天是星期几。
通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。
假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。
这时候是不是有办法通过什么公式,从年月日推出这一天是星期几呢?答案是肯定的。
其实我们也常常在这样做。
我们先举一个简单的例子。
比如,知道了2004年5月1日是星期六,那么2004年5月31日“世界无烟日”是星期几就不难推算出来。
计算某天是星期几
![计算某天是星期几](https://img.taocdn.com/s3/m/1fa356f5ba0d4a7302763a4b.png)
计算某天是星期几(含六个例程)计算某天是星期几,最常见的公式: W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
计算某天是星期几,最常见的公式:W=[Y-1]+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+DY是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
最好用的是蔡勒公式:W=[C/4]-2C+y+[y/4]+[13*(M+1)/5]+d-1C是世纪数减一,y是年份后两位,M是月份,d是日数。
1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。
两个公式中的[...]均指只取计算结果的整数部分。
算出来的W除以7,余数是几就是星期几。
如果余数是0,则为星期日。
星期制度是一种有古老传统的制度。
据说因为《圣经〃创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。
从实际的角度来讲,以七天为一个周期,长短也比较合适。
所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
在日常生活中,我们常常遇到要知道某一天是星期几的问题。
有时候,我们还想知道历史上某一天是星期几。
通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。
假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。
这时候是不是有办法通过什么公式,从年月日推出这一天是星期几呢?答案是肯定的。
其实我们也常常在这样做。
我们先举一个简单的例子。
比如,知道了2004年5月1日是星期六,那么2004年5月31日“世界无烟日”是星期几就不难推算出来。
计算某年某月某日是星期几的方法
![计算某年某月某日是星期几的方法](https://img.taocdn.com/s3/m/a2eedd05f78a6529647d5321.png)
计算某年某月某日是星期几的方法
算式:
S=X-1+[(X-1)/4] -[(X-1)/100] +[(X-1)/400]+C
其中 x是公元的年数,C是从这一年的元旦算起到这一天为止(包括这一天是内)的天数。
方括号表示其中算式的整数部分,即在计算S 的值时,三个方括号中只要算出商数的整数部分,把余数略去不计。
求出S的值之后,除以7,余几就是星期几;除尽了就是星期日。
举例:
1.计算西安事变发生在星期几。
解西安事变发生在1936年12月12日,所以x=1936 C=347于是可得:
S=1936-1+[(1936-1)/4] -[(1936-1)/100] +[(1936-1)/400]+347 =1935+483-19+4+347=2750
2750÷7=392………6,
所以西安事变发生在星期六
2.计算一下今天(2006年6月11日)是星期几;此时x=2006, C=162,于是可得 :
S=2006-1+[(2006-1)/4] -[(2006-1)/100] +[(2006-1)/400]+162 =2005+501-20+5+162=2653
2653÷7=379,无余数,
所以,今天是星期日。
说明:
这个计算方法根据的是每四年一闰、百年不闰、四百年再闰的历法,该历法是从公元1582年开始实行的,所以,用这个方法可以计算公元1582年以后某年某月某日是星期几。
根据年月日推算是星期几的公式
![根据年月日推算是星期几的公式](https://img.taocdn.com/s3/m/99951732cdbff121dd36a32d7375a417866fc11b.png)
根据年月日推算是星期几的公式有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来:这里的方括号表示只取商的整数部分。
式中:x :这一年是公元多少年。
y :这一天是这一年的第几天。
s :星期几。
不过要先除以7,再取余数。
没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。
比如,2010年国庆节(10月1日)是星期几?x =2010。
y =31+28+31+30+31+30+31+31+30+1=31×5+30×3+28+1=274。
s =2010-1+502-20+5+274=2770,2770÷7余5。
所以,2010年国庆节是星期五。
如果,你只想知道这个公式怎样用,到这儿就可以了。
而要想知道这个公式的道理是什么,那可就说来话长了。
“星期制”是公元321年3月7日,古罗马皇帝君士坦丁宣布开始实行的,并且规定这一天为星期一。
实际上,就是把公元元年元旦(公元1年1月1日)规定为星期一。
(相当于公式中的x =1,y =1,所以s =1。
)通常1年有365天,365÷7=52……1,就是说比52个星期多1天。
所以,同一个日期,下一年是星期几,就要比上一年向后推1天。
比如,上一年元旦是星期三,下一年元旦就是星期四。
“通常每过1年,把同一日期是星期几向后推1天”,是理解这个公式的关键。
要想知道某年某月某日是星期几,首先,要知道这一年元旦以公元元年元旦是星期一为起点,已经把星期几向后推了多少天,还要知道这一天是这一年的第几天。
而要知道这一年元旦已经把星期几向后推了多少天,可以从公元元年到这一年已经过了多少年算起,先按1年向后推1天计算,再根据闰年的规定进行调整。
闰年的规定是:年份是4的倍数的一般都是闰年,其中,年份是整百数的y x x x x s +⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--⎥⎦⎤⎢⎣⎡-+-=40011001411一般不是闰年,只有年份是400的倍数的才是闰年。
三年级数学根据年、月、日推算是星期几的公式
![三年级数学根据年、月、日推算是星期几的公式](https://img.taocdn.com/s3/m/102bd4822f60ddccdb38a019.png)
三年级数学根据年、月、日推算是星期几的公式 有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来:这里的方括号表示只取商的整数部分。
式中:x :这一年是公元多少年。
y :这一天是这一年的第几天。
s :星期几。
不过要先除以7,再取余数。
没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。
比如,2010年国庆节(10月1日)是星期几?x =2010。
y =31+28+31+30+31+30+31+31+30+1=31×5+30×3+28+1=274。
s =2010-1+502-20+5+274=2770,2770÷7余5。
所以,2010年国庆节是星期五。
如果,你只想知道这个公式怎样用,到这儿就可以了。
而要想知道这个公式的道理是什么,那可就说来话长了。
y x x x x s +⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--⎥⎦⎤⎢⎣⎡-+-=40011001411“星期制”是公元321年3月7日,古罗马皇帝君士坦丁宣布开始实行的,并且规定这一天为星期一。
实际上,就是把公元元年元旦(公元1年1月1日)规定为星期一。
(相当于公式中的x =1,y =1,所以s =1。
)通常1年有365天,365÷7=52……1,就是说比52个星期多1天。
所以,同一个日期,下一年是星期几,就要比上一年向后推1天。
比如,上一年元旦是星期三,下一年元旦就是星期四。
“通常每过1年,把同一日期是星期几向后推1天”,是理解这个公式的关键。
要想知道某年某月某日是星期几,首先,要知道这一年元旦以公元元年元旦是星期一为起点,已经把星期几向后推了多少天,还要知道这一天是这一年的第几天。
而要知道这一年元旦已经把星期几向后推了多少天,可以从公元元年到这一年已经过了多少年算起,先按1年向后推1天计算,再根据闰年的规定进行调整。
闰年的规定是:年份是4的倍数的一般都是闰年,其中,年份是整百数的一般不是闰年,只有年份是400的倍数的才是闰年。
计算指定年月日是星期几的公式
![计算指定年月日是星期几的公式](https://img.taocdn.com/s3/m/ceb9b208e87101f69f31950e.png)
计算指定年月日是星期几的公式陈渣荒当你想要知道某年某月某日是星期几,手边又无相关资料或工具可查时,本文提供的“计算指定年月日是星期几的公式”,可以帮你即时获得答案。
假设指定的年月日是 abcd年y月r日,则计算这天是星期几的公式为X=7{(r+[(13(y-2)-1)/5]+cd+[cd/4]+[ab/4]-2*ab)/7}. 公式中,X表示星期几;r表示日期;y表示月份;cd与ab分别表示年份数的后面两位与前面两位上的数字;记号[f]与{f}分别表示数值f的整数部分与分数部分,例如[83/7]与{83/7}分别是11与6/7. 要特别注意的是,当月份是1与2时,y-2成为反常值-1与0而使计算结果不正确。
解决方法是把年月作适当变换,即从年份数中减去1年,并把这1年换成12个月,再把这12个月加到月份数中,这样,年月日就换成了(abcd-1)年(y+12)月r日。
用变换后的这个年月日的对应数值进行计算就可以了。
下面举例说明这个公式的具体运用例1 试计算2014年12月31日是星期几解把这个年月日的对应数值代入公式,有X=7{(31+[(13(12-2)-1)/5]+14+[14/4]+[20/4]-2*20)/7}=7{(31+25+14+3+5-40)/7}=7{38/7}=7{5+3/7}=7*3/7=3.即2014年12月31日是星期3.例2 试计算2015年5月1日是星期几解把这个年月日的对应数值代入公式,有X=7{(1+[(13(5-2)-1)/5]+15+[15/4]+[20/4]-2*20)/7}=7{(1+7+15+3+5-40)/7}=7{-9/7}=7{-1-2/7+1-1}=7{-2+5/7}=7*5/7=5. 即2015年5月1日是星期5. 注意:记号{ }中的负值分数必须代换成正值分数后,才可以与7相乘而得到正确结果。
例3 试计算2000年2月29日是星期几解先把年月日换成1999年14月29日,再把它的对应数值代入公式,有X=7{(29+[(13(14-2)-1)/5]+99+[99/4]+[19/4]-2*19)/7}=7{(29+31+99+24+4-38)/7}=7{149/7}=7{21+2/7}=7*2/7=2. 即2000年2月29日是星期2.例4 试计算2026年8月2日是星期几解把题中对应数值代入公式,有X=7{(2+[(13(8-2)-1)/5]+26+[26/4]+[20/4]-2*20)/7}=7{(2+15+26+6+5-40)/7}=7{14/7}=7{2+0/7}=7*0=0. 即2026年8月2日是星期日。
计算星期几的方法
![计算星期几的方法](https://img.taocdn.com/s3/m/23c68e6b866fb84ae55c8d2a.png)
计算星期几的方法计算任何一个日期是星期几的方法蔡勒公式W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1 C是世纪数减1,y是年份后两位,M是月份(从3月开始,1月和2月要按上一年的13月和14月来算,这时C和y 均按上一年取值),d是日数。
求出W的值,再除以7,余几就是星期几,余数为0,则是星期天。
注意:[...]表示只取整数部分注意:公式中如计算得出负数,不能按习惯的余数的概念求余数,只能按数论中的余数的定义求余。
为了方便计算,我们可以给它加上一个7的整数倍,使它变为一个正数,比如加上7、14、21、28等,得到一个整数后,再除以7,余几,说明这一天是星期几。
例1:2004年的9月1日是星期几?C=20 y=04 M=9 d=1W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1 =[20/4]-2×20+04+[04/4]+[13×(9+1)/5]+1-1=5-40+4+1+[13×2]+1-1=5-40+4+1+26+1-1=-4W为负数不行,加7的倍数14,得10。
10除以7,余数为3,2004年的9月1日是星期三。
例2:2010年的7月15日是星期几?C=20 y=10 M=7 d=15W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1 =[20/4]-2×20+10+[10/4]+[13×(7+1)/5]+15-1=5-40+10+2+[13×8/5]+14=-23+20+14=1111除以7余数为4,2010年的7月15日是星期四。
链接:1世纪为100年,2000年以后为21世纪,以此类推1个年代为10年,90-99为90年代,以此类推!如:1900年是19世纪、1901年是20世纪、2000年是20世纪、2001年是21世纪。
怎样快速根据日期推算星期
![怎样快速根据日期推算星期](https://img.taocdn.com/s3/m/8d29a14ff7ec4afe04a1dff5.png)
怎样快速根据日期推算星期方法一:1.日期代码指的是日期数,如3月18号,日期代码为18。
4月7号,日期代码为7。
2.月份代码(需要小小记忆)五月是 0八月是 1二月三月十一月是 2六月是 3九月十二月是4四月七月是5一月十月是 6如果遇到闰年则二月代码变为1,一月代码变为5,其它不变。
即,非闰年的月份代码为622503 514624,闰年的月份代码为512503 514624。
3.年份代码举个例子 2010年的代码,我们用尾数10除以4(忽略余数)再加上10得到数字12,再用12除以7,得到的余数5就是2010年的代码。
也就是说,心算出2000到2099任意年份的代码,只需将其后两位数X除以4(忽略余数),然后与X相加,并除以7就可以了,得到的余数就是其年份代码。
10年的年份代码是5,11年年份代码为6。
4.秒算任意日期的星期数如,我们算一下2010年4月25日日期代码25月份代码5年份代码5日期代码+月份代码+年份代码=25+5+5=3535是7的倍数,所以2010年4月25日是星期日再比如算一下2010年10月1日日期代码1月份代码6年份代码5日期代码+月份代码+年份代码=1+6+5=1212除以7余5,所以2010年10月1日是星期五如果得到的代码和是小于7的数,那么此数直接是星期数如果得到的代码和是大于7的数,那么将该数除以7得到的余数为星期数。
原理:蔡勒公式W=[C/4]-2C+y+[y/4]+[26(m+1)/10]+d-1 (其中[ ]为取整符号)∙其中,W是所求日期的星期数.如果求得的数大于7,可以减去7的倍数,直到余数小于7为止.c是公元年份的前两位数字,y是已知公元年份的后两位数字;m是月数,d是日数.方括[ ]表示只截取该数的整数部分。
∙还有一个特别要注意的地方:所求的月份如果是1月或2月,则应视为前一年的13月或14月.所以公式中m 的取值范围不是1-12,而是3-14.∙大家读懂后,我给出一些历史时期,以便读者进行验算.(1).美国总统林肯遇刺,1865年4月14日,星期5;(2).美国独立纪念日,1776年7月4日,星期日;(3).日本偷袭珍珠港,1941年1941年12月7日;∙最后还有一点,工元1582年罗马教皇曾经下令修改历法,把这一年的10月4日(星期4)的下一天改为10月15日.所以在1582年以前的日子,不能加以套用.冬日夜冷继续闲读,近日看了本《古代文化常识百话》,其中有篇是关于公历年份是如何换算成农年的干支纪年的,蛮有意思的,特记之。
某年某月某日星期几的计算方法
![某年某月某日星期几的计算方法](https://img.taocdn.com/s3/m/bbd3296b7e21af45b307a892.png)
某年某月某日星期几的计算方法!首先确定公历(阳歷)12个月,每个月的代码数即:每个月号前一天是星期几,本月代码数就是几,如果是星期天,代码数就是0。
那个月几号是星期几?就把几号加上本月代码数后被7除,餘几就是星期几,除尽就是星期天。
如:2006年从1月---12月以次代码数为:6、2、2、5、0、3、5、1、4、6、2、4。
如果计算10月1日星期几?就把1号加上10月代码6等於7,能被7除尽,10月1日就是星期天。
再如:7月21日星期几?就把21加上7月代码数5等於26,被7除后餘5,7月21日就是星期五(因为21本身就能被7除尽,就不用再加代码数了,代码数是几就是星期几)。
注:如果要计算下一年每月代码数,可在上一年每月代码数上加1即可。
阳歷一年中大月为31天,小月为30天,平月(2月)为28天,闰月年为29天。
闰月年就是,年数能被4除尽的为闰月年,闰月年就要在2月加1天(2月变成29天)。
闰月年每月的代码数除1月、2月在上一年同月代码数上加1外,其他月份都在上年同月代码数上加2即可;闰月年的下一年每月的代码数除1月、2月在上一年同月代码数上加2外,其他月份在上年同月代码数上加1即可。
想知道某年某月某日星期几的计算方法?注:你要想查某年、某月、某日、星期几?如查:(1)、1949年10月1日星期几?1、先查1949年代码数为5;2、再查10月代码数为0;3、后查1日代码数为1。
4、然后把年、月、日代码数相加得6再除7於6、(5+0+1)/7=6、即星期六。
(被7除余几,就是星期几);5、括弧年份能被4除尽为闰年, 闰年1、2月代码数以括弧为准。
(2)、要查:1963年7月29日,星期几?经查代码数年为1、月为6、日为1;即:(1+6+1)/7=1,被7除余1,这天就是星期一。
C语言根据日期判断星期几(使用基姆拉尔森计算公式)加解释
![C语言根据日期判断星期几(使用基姆拉尔森计算公式)加解释](https://img.taocdn.com/s3/m/ed9f71a9dd3383c4ba4cd200.png)
C语言根据日期判断星期几(使用基姆拉尔森计算公式)算法如下:基姆拉尔森计算公式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月1日为星期一</PRE><PRE>程序如下:/*利用基姆拉尔森计算日期公式w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)*/#include <stdio.h>void CaculateWeekday(int y, int m, int d){int w; //代表星期几if (m==1 || m==2){m += 12;y--;}w = (d+1 + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;switch(w){case 0:printf("星期天!\n"); break;case 1:printf("星期一\n"); break;case 2:printf("星期二\n"); break;case 3:printf("星期三\n"); break;case 4:printf("星期四\n"); break;case 5:printf("星期五\n"); break;case 6:printf("星期六\n"); break;}}int main(){int year,month,day;char ch='1';while(ch != '\033'){printf("\n请输入日期:\n格式为:1900,1,1\n"); scanf("%d,%d,%d",&year,&month,&day); CaculateWeekday(year,month,day);flushall();printf("按Esc 键退出,其他键继续!");ch = getch();printf("\n");flushall();}}运行效果:请输入日期:格式为:1900,1,12008,4,29星期二输入0退出,其他继续:d2008,1,1星期二输入0退出,其他继续:l2008,8,8星期五输入0退出,其他继续:0请按任意键继续. . .编者注:用来算现在真实日期的星期是没有问题的。
根据公历日期计算星期的公式
![根据公历日期计算星期的公式](https://img.taocdn.com/s3/m/e315f8b60912a216147929fc.png)
根据公历日期计算星期的公式xx(Zeller)公式:是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。
公式如下:W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1公式中的符号含义如下:w:星期;(w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六)c:世纪(前两位数)y:年(后两位数)m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、"2月要看作上一年的13、"14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)d:日[ ]代表取整,即只要整数部分。
下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1=49+[]+[]-2×20+[26×(10+1)/10]+1-1=49+[12."25]+5-40+[28."6]=49+12+5-40+28=54 (除以7余5)即2049年10月1日(100周年国庆)是星期五。
"再比如计算2006年4月4日,过程如下:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1=6+[]+[]-2*20+[26*(4+1)/10]+4-1=-12 (除以7余2,注意对负数的取模运算!)不过,以上的公式都只适合于1582年(我国明朝万历十年)10月15日之后的情形。
罗马教皇格里高利十三世在1582年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对儒略历作了修改。
将1582年10月5日到14日之间的10天宣布撤销,继10月4日之后为10月15日。
后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。
根据年月日巧算星期几
![根据年月日巧算星期几](https://img.taocdn.com/s3/m/3f764bc5d5bbfd0a795673b2.png)
根据年月日巧算星期几蒲纺二小乐志超王宝山亲爱的读者,如果给你年月日的具体数据,你能很快推算出这一天是星期几吗?笔者在辅导学生数学活动的时候,发现了一个有趣的规律。
现整理出来,供广大数学爱好者参考。
首先说说三个小常识:一、公元元年的元月一日是星期一;二、公元年分平年和闰年,平年每年有365天,闰年每年有366天。
闰年里多出一天放在二月份。
三、根据地球绕太阳转的运行规律,历法学家们规定年份数是4的倍数这一年就是闰年。
但世纪年份数必须是400的倍数的这一年才是闰年。
其他的年份都是平年。
由常识二,我们可以推算出一平年有52星期多一天,一闰年有52星期多两天。
这就可以证明某平年的元旦是星期几,当年的12月31日也一定是星期几。
下一年无论是平年还是闰年,元旦这一天一定是星期几(几+1)。
某闰年的元旦是星期几,当年的12月31日一定是星期(几+1),下一年元旦这天一定是(几+2)。
根据这个结论再联想到常识一和常识三,我们就可以着手计算任意年份的元旦是星期几了。
设已知的年份数为a,把这a年全部按照平年来计算。
因为一平年是52个星期多一天,a年就会多a天。
在a年中,是4的倍数的年份数有[a÷4]个;(这里的[a÷4]表示4除a的整数商,类似的意思相同),是世纪年的年份数有[a÷100]个;是400的倍数的年份数有[a ÷400]个。
如果公元a年是平年,那么从公元元年元月1日到公元a 年的元月1日,一共经过了52(a-1)个星期还多(a+[a÷4]-[a÷100]+[a÷400])天。
如果公元a年是闰年,那么从公元元年的元月1日到公元a年的元月1日,一共经过了52(a-1)个星期还多(a-1+[a ÷4]-[a÷100]+[a÷400])天。
为什么这里会出现“a-1”天呢?这是因为闰年里多出的一天加到二月份,是2月29日这一天,而公元a 年(闰年)的元月1日还没有经过这一天,所以在计算闰年时要减去一天,用“a-1”表示。
口算星期几
![口算星期几](https://img.taocdn.com/s3/m/306486b1dc88d0d233d4b14e852458fb770b38e4.png)
口算星期几只要记住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)+119世纪年码=21世纪年码+3,即 mod(X+int(X/4),7)+318世纪年码=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。
判断某一天是星期几的算法
![判断某一天是星期几的算法](https://img.taocdn.com/s3/m/8039451c55270722192ef74d.png)
最后写一个很有用的星期的介绍如何计算某一天是星期几?——蔡勒(Zeller)公式历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式。
即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。
(C 是世纪数减一,y是年份后两位,M是月份,d是日数。
1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。
)算出来的W除以7,余数是几就是星期几。
如果余数是0,则为星期日。
以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下:蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1=49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1=49+[12.25]+5-40+[28.6]=49+12+5-40+28=54 (除以7余5)即2049年10月1日(100周年国庆)是星期5。
你的生日(出生时、今年、明年)是星期几?不妨试一试。
不过,以上公式只适合于1582年10月15日之后的情形(当时的罗马教皇将恺撒大帝制订的儒略历修改成格里历,即今天使用的公历)。
过程的推导:(对推理不感兴趣的可略过不看)星期制度是一种有古老传统的制度。
据说因为《圣经·创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。
从实际的角度来讲,以七天为一个周期,长短也比较合适。
给出年月日计算星期几
![给出年月日计算星期几](https://img.taocdn.com/s3/m/d3a44215ff00bed5b9f31d8b.png)
= 122,
这正是5月1日在2004年的累积天数。
假如,我们再变通一下,把1月和2月当成是上一年的“13月”和“14月”,不仅仍然符合这个公式,而且因为这样一来,闰日成了上一“年”(一共有14个月)的最后一天,成了d的一部分,于是平闰年的影响也去掉了,公式就简化成:
= 2002 + 500 - 20 + 5 + 36 + 1
= 2524;
2524 / 7 = 360……4.这和实际是一致的。
公式(5)已经是从年、月、日来算星期几的公式了,但它还不是最简练的,对于年份的处理还有改进的方法。我们先来用这个公式算出每个世纪第一年3月1日的星期,列表如下:
年份: 1(401,801,…,2001) 101(501,901,…,2101)
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
(Y-1)*365 = (Y-1) * (364+1)
= (Y-1) * (7*52+1)
= 52 * (Y-1) * 7 + (Y-1),
这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其实就等于Y-1除以7的余数。这个关系可以表示为:
【转】给出年月日,计算星期几--算法及算法来历最常见的公式:
W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D
Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于计算某年某月某日是星期几的公式的推导
一、 若知道年份x 和当年的第a 天,求这天是星期几?
1、首先求出该天从公元的第一天开始到该天一共经过了多少天,我们知道一般年份有365天,闰年有366天,一般年份能被4整除的是闰年,整百年必须是能被400整除的才是闰年,每一个闰年比一般年份多一天,到第x-1年一共经过了多少个闰年?我们可以用取整的方法求出经过了多少个闰年,[]m 表示对m 取整,(如:[]285.2= []23.2=) 到第x-1年如果不考虑整百年份,那么经过了⎥⎦
⎤⎢⎣⎡-41x 个闰年,但是,这个数值包含了是整百年份又不能被400整除的年份,因此,我们用⎥⎦⎤⎢⎣⎡-41x -⎥⎦
⎤⎢⎣⎡-1001x ,但这个值又减少了能被400整除的年份,我们给它加上是整百年份
又能被400整除的年份,⎥⎦⎤⎢⎣⎡-41x -⎥⎦⎤⎢⎣⎡-1001x +⎥⎦
⎤⎢⎣⎡-4001x ,这个值就是到第x-1年年末一共有多少个闰年。
有一个闰年就比一个一般年份多一天,有多少个闰年就比多少个一般年份多多少天,有⎥⎦⎤⎢⎣⎡-41x -⎥⎦⎤⎢⎣⎡-1001x +⎥⎦
⎤⎢⎣⎡-4001x 个闰年,就比这么多个一般份多这么多天, ,那到x-1年的12月31日一共经过了多少天呢?正好是
()3651⨯-x +⎥⎦⎤⎢⎣⎡-41x -⎥⎦⎤⎢⎣⎡-1001x +⎥⎦⎤⎢⎣⎡-4001x 天,到第x 年的第a 天,一共经
过了()3651⨯-x +-⎥⎦⎤⎢⎣⎡-41x ⎥⎦⎤⎢⎣⎡-1001x +⎥⎦⎤⎢⎣⎡-4001x +a 天,因为()3651⨯-x 7÷与
()71÷-x 同余,所以我们用1-x +⎥⎦⎤⎢⎣⎡-41x -⎥⎦⎤⎢⎣⎡-1001x +⎥⎦⎤⎢⎣⎡-4001x +a 除以7
看余数便知道是星期几,我们对着2014年的日历知道2014年1月1日是星期三,我们把x=2014, a=1代入
y=1-x +⎥⎦⎤⎢⎣⎡-41x -⎥⎦⎤⎢⎣⎡-1001x +⎥⎦⎤⎢⎣⎡-4001x +a 得y=2014-1-503-20+5+1=2502
335772502 =÷,从这我们知道用y 除以7余数是几便是星期几。
同时在推导的过程中我们意外的知道公元1年1月1日是星期一 现在我们要算某年某月某日是星期几只需把该年的年份x 和该
年的第几天a 代入y=1-x +⎥⎦⎤⎢⎣⎡-41x -⎥⎦⎤⎢⎣⎡-1001x +⎥⎦
⎤⎢⎣⎡-4001x +a ,用它的值除以7取余数,余数是几就是星期几。
我们算一算1949年10月1日是星期几?
x=1949 a=31+28+31+30+31+30+31+31+30+1=274 y=274400119491001194941194911949+⎥⎦
⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--⎥⎦⎤⎢⎣⎡-+- y=26942744194871948=++-+
38472694=÷ (6)
所以1949年10月1日是星期六。