为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算星期几

2017-11-17 4页 doc 16KB 59阅读

用户头像

is_574951

暂无简介

举报
计算星期几计算星期几 要知道几十天以后的某一天是星期几,这是不难的,因为只要计算一下被7除的余数就可以了。但是,如果要知道几十年以后的某一天是星期几,那就比较困难了,因为在这段时间里有闰年,而且,每个月所含的天数也不一样。在这一节,我们要给出一个公式,可以方便地解决这个问题。 按现行的公历历法,每年有365天,若这一年是闰年,则有366天,二月有二十九天。闰年是这样确定的:公元年份数不被100整除但被4整除,或者年份数被400整除。 如果某一年是闰年,这一年的二月比正常年份的二月多一天,这样,从这一年的三月一日开始,星期数都受到这...
计算星期几
计算星期几 要知道几十天以后的某一天是星期几,这是不难的,因为只要计算一下被7除的余数就可以了。但是,如果要知道几十年以后的某一天是星期几,那就比较困难了,因为在这段时间里有闰年,而且,每个月所含的天数也不一样。在这一节,我们要给出一个公式,可以方便地解决这个问题。 按现行的公历历法,每年有365天,若这一年是闰年,则有366天,二月有二十九天。闰年是这样确定的:公元年份数不被100整除但被4整除,或者年份数被400整除。 如果某一年是闰年,这一年的二月比正常年份的二月多一天,这样,从这一年的三月一日开始,星期数都受到这闰月的影响,同时,这一年的一月和二月里的星期数却不受影响。这样,就使得同一年里的计算有些不方便。所以,为了计算方便,我们把三月一日作为计算星期数的基点。 1600年以来,全世界大部分地区使用现行的公历历法。因此,我们考虑一个从1600年起使用的计算星期几的公式。 以下,我们使用记号: N = 100c , y示年份,其中0 , y , 99; m表示月份,m = 1表示三月,m = 2表示四月,? ?,m = 12表示二月; d(m)表示第N年m月1日的星期数。 N 假设d(1)是已知的,我们首先计算d(1),即第N年3月1日的星期数。1600N 我们知道:如果没有闰月,一年有365天,因为 365 , 1 (mod 7), 所以,每过一个正常年,星期数就增加1;每过一个闰年,星期数就增加2。 以r表示从1600年到N年的闰年数,我们得到 d(1) , d(1) , N – 1600 , r (mod 7)。 (1) N1600 由闰年的确定,我们有 100c,y,1600100c,y,1600100c,y,1600r,,, [][][]4100400 yy100c,y ,25c,[],400,c,[],16,[],44100400 yy100c,y (2) ,[],24c,[],[],388。4100400 设c = 4q , s,0 , s , 3,那么,由于0 , y , 99,100s , y < 400,所以 y100s,y[],0,[]= 0, 100400 因此,由式(2)得到 y400q,100s,y r,[],24c,[],3884400 y ,[],24c,q,3884 yc , (3) ,[],24c,[],38844 d(1),d(1),N,1600,r N1600 yc ,d(1),100c,y,1600,[],24c,[],388160044 yc (4) (1)2[][](mod7)。,d,c,y,,160044 为了确定d(1)的数值,我们把一个已知的数据代人式(4),例如,我们知1600 道1998年3月1日是星期日,即d(1) , 0 (mod 7),代人式(4),得到 1998 9819[],[]0 , d(1) , 2,19 , 98 ,, d(1) , 4 (mod 7), 1600160044 所以d(1) , 3,即1600年的3月1日是星期三。将这个数值代人式(4),得到 1600 yc,[][]d(1) , 3 , 2c , y ,(mod 7)。 (5) N44 现在,我们已经能够计算N年的3月1日是星期几。剩下的问题是如何计算这一年的m月k日是星期几。 我们先计算d(m),即N年m月1日的星期数。容易知道: N 3 月是31天,所以 d(2) , d(1) , 3 (mod 7), NN 4 月是30天,所以 d(3) , d(1) , 5 (mod 7), NN 5 月是31天,所以 d(4) , d(1) , 8 (mod 7), NN 6 月是30天,所以 d(5) , d(1) , 10 (mod 7), NN 7 月是31天,所以 d(6) , d(1) , 13 (mod 7), NN 8 月是31天,所以 d(7) , d(1) , 16 (mod 7), NN 9 月是30天,所以 d(8) , d(1) , 18 (mod 7), NN 10月是31天,所以 d(9) , d(1) , 21 (mod 7), NN 11月是30天,所以d(10) , d(1) , 23 (mod 7), NN 12月是31天,所以d(11) , d(1) , 26 (mod 7), NN 1 月是31天,所以d(12) , d(1) , 29 (mod 7)。 NN 现在,计算N年m月k日的星期数已经是很容易的事了。但是,我们希望找一个更简单的公式。从上面的数字可以看出,从3月1日到2月1日的11个月中,星期数“增加”了29天,平均每月“增加”2.6天,因此,我们来找一个形如[2.6m , a]的公式,其中m是月份,a是某个适当的数。经过验证,发现函数 f(m) = [2.6m , 0.2] , 2满足这些条件: f(1) = 0,f(2) = 3,f(3) = 5,f(4) = 8,?,f(12) = 29。 利用这个函数,我们得到N年m月1日的星期数是 d(m) , d(1) , {[2.6m , 0.2] , 2 }(mod 7)。 NN 因此,N年m月k日的星期数W(N, m, k)是 W(N, m, k) = d(m) + k , 1 , d(1) , [2.6m , 0.2] , k – 3 (mod 7), NN 由式(5),得到 ycW(N, m, k) , k , 2c , y ,,[][], [2.6m , 0.2] (mod 7)。 (6) 44 利用上式我们就能较容易地计算出任意给定的N年m月k日的星期数的星期数W(N, m, k)了。 问:1976年8月6日是星期几, 例1 解 将N = 1976,c = 19,y = 76,m = 6,k = 6代入式(6),得到 7619W(1976, 6, 6) , 6 – 38 , 76 ,[],[], [2.6,6 – 0.2] , 5 (mod 7), 44 即1976年8月6日是星期五。 例2 问:1978年2月24日是星期几, 解 将N = 1977,c = 19,y = 77,m = 12,k = 24代入式(6),得到 7719) , 24 – 38 , 77 ,[],[], [2.6,12 – 0.2] , 5 (mod 7), W(1977,12,2444 即1978年2月24日是星期五。 注意,由例2我们看到,一月和二月分别是作为上一年的十一月和十二月。 习 题 一 1. 问:1948年2月14日是星期几, 问:1999年10月1日是星期几, 2.
/
本文档为【计算星期几】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索