加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

巧算几月几日是星期几

(2011-04-06 19:45:58)
标签:

教育

分类: 教育(家庭及教学)

巧算几月几日是星期几

 

 

 

在总复习试卷上有这样的题:

12003年的91日是星期一,2004年的91日是星期几?

22005年的61日是星期三,2008年的61日是星期几?

全班只有两个学生做正确,我问其方法,只有一个人回答把天数相加,再除以7(不好意思,没上网查之前,我也只知道这种方法),另一个学生说是查日历知道的(呵呵,这也不失为一种方法)。

按照我的思路讲解后,我总觉得第2题做起来有点麻烦,有没有巧方法呢?回到家,一头扎入网海,哈哈,还真让我捞到了“宝贝”。下面,就让我一一展示给你吧,不过,你要既动脑,也动动手哟。

一、追溯来源:

星期制度是一种有古老传统的制度。据说因为《圣经·创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。从实际的角度来讲,以七天为一个周期,长短也比较合适。所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的十旬休暇,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
   
二、提出问题:
   
在日常生活中,我们常常遇到要知道某一天是星期几的问题。有时候,我们还想知道历史上某一天是星期几。通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。假如是想在计算机编程中,计算某一天是星期几,预先把一本万年历存进去就更不现实了。这时候是不是有办法通过什么公式,从年月日推出这一天是星期几呢?
   
三、解决问题:
    1
、方法:

答案是肯定的。其实我们也常常在这样做。我们先举一个简单的例子。比如,知道了200451日是星期六,那么2004531世界无烟日是星期几就不难推算出来。我们可以掰着指头从1日数到31日,同时数星期,最后可以数出531日是星期一。其实运用数学计算,可以不用掰指头。我们知道星期是七天一轮回的,所以51日是星期六,七天之后的58日也是星期六。在日期上,8-1=7,正是7的倍数。同样,515日、522日和529日也是星期六,它们的日期和51日的差值分别是142128,也都是7的倍数。那么531日呢?31-1=30,虽然不是7的倍数,但是31除以7,余数为2,这就是说,531日的星期,是在51日的星期之后两天。星期六之后两天正是星期一。又如,第1题:2003年的91日是星期一,从2003年的91日到2004年的91日(2004年是闰年,229天),一共有366天,366除以7,余2,从星期一往后数两天,就是星期三,所以,2004年的91日是星期三。
    2
、思路:
   
这个简单的计算告诉我们计算星期的一个基本思路首先,先要知道在想算的日子之前的一个确定的日子是星期几,拿这一天做为推算的标准,也就是相当于一个计算的原点。其次,知道想算的日子和这个确定的日子之间相差多少天,用7除这个日期的差值,余数就表示想算的日子的星期在确定的日子的星期之后多少天。如果余数是0,就表示这两天的星期相同。显然,如果把这个作为原点的日子选为星期日,那么余数正好就等于星期几,这样计算就更方便了。
    3
、弊病:
    但是直接计算两天之间的天数,还是不免繁琐。比如上面第2题:2005年的61日是星期三,从2005年的61日到2008年的61日,一共有1096天,除以7,余4,从星期三往后数四天,正好是星期天,也就是说,2008年的61日是星期天。做这题,中间经过2006年、2007年,这两年是平年,每年365天,2008年是闰年,2月份是29天,这些都要考虑清楚,稍不注意就容易出错。又如1980729日和20076 1日之间相隔的天数,就不是一下子能算出来的。这里涉及到1980729日后到同年年底的的天数,200711日到61日之前的天数,还涉及平年、闰年,计算起来更复杂了。有没有简单、实用的方法呢?

四、优化方法:巧算

现在已经有了,只要记住了公式,知道相关字母表示什么意思,就能很快算出任何一天是星期几,犹如随身带着一本万年历,岂不美哉!

这个公式由世纪数减一、年份末两位、月份和日数即可算出W,再除以7,得到的余数是几就表示这一天是星期几,余数为0,则是星期天。唯一需要变通的是要把1月和2月当成上一年的13月和14月, Cy都按上一年的年份取值。因此,人们普遍认为这是计算任意一天是星期几的最好的公式。

这个公式最早是由德国数学家克里斯蒂安·蔡勒(Christian Zeller, 1822- 1899)在1886年推导出的,因此通称为蔡勒公式Zeller’s Formula)。

蔡勒公式:
W = [C/4] - 2C + y + [y/4] + [13
×(M+1) / 5] + d - 1
    C
世纪数减一y年份后两位M月份(从3开始,1月和2要按上一年的13月和 14来算,这时Cy按上一年取值),d日数。求出W的值,再除以7,余几就是星期几,余数为0,则是星期天。

注意:[...]表示只取整数部分
    注意:公式中如计算得出负数,不能按习惯的余数的概念求余数,只能按数论中的余数的定义求余。为了方便计算,我们可以给它加上一个7的整数倍,使它变为一个正数,比如加上7142128等,得到一个整数后, 再除以7,余几,说明这一天是星期几。

我们用这种方法再来做做上面的两道题。

1题:2003年的91日是星期一,2004年的91日是星期几?

C=20  y=04   M=9  d=1

      W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1
        =[20/4
]2×2004[04/4][13×(91/5]11

    =54041[13×2]11

    =540412611

    =4

W为负数不行,加7的倍数14,得1010除以7,余数为32004年的91日是星期三。

    2题:2005年的61日是星期三,2008年的61日是星期几?

C=20  y=08   M=6   d=1

      W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1
        =[20/4
]2×2008[08/4][13×(61/5]11

    =54082[13×7/5]11

    =540821811

    =7

W为负数不行,加7的倍数7,刚好为00除以7还是得0。余数为02008年的61日是星期天。

计算结果与前面相同。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有