答:在初等数论中,有很多根据年月日计算星期的公式,我来介绍一个。
相关知识在介绍公式前,我们先来了解一些数学和公历相关的知识:(1)闰年规则:四年一闰,百年不闰,四百年再闰,闰年是366天,平年是365天;(2)闰月规则:闰年时,多的一天都加到二月中,平年二月28天,闰年二月29天;(3)格里高利历:我们现在使用的公历,传至西方,叫做格里高利历;在1582年10月4日(包括4日)前,罗马使用儒略历,罗马教皇格里高利十三世改革历法,针对哥白尼的日心说修正了旧历法,规则:1582年10月4日接下来的一天为10月15日,相当于历法中少了10天,但是星期继续接着前一天的;(3)取整符号:[a]表示对实数a取整,也就是抛弃小数部分,只留下整数部分,比如"[3.7865]=3";(4)同余式:若m是一个正整数,a、b为整数,且满足.a=b+km(k为整数),也就是说a和b除以m的最小正余数相同,则称a与b对模m同余,记作a≡b(mod m);根据以上历法规则和数学工具,就可以利用同余技巧来处理,因为我们计算某一天是星期几,只需要选定一个固定的日期,然后计算和另外一个日期的相差天数对“7”取余即可。
蔡勒公式其中符号:w:表示星期,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六,0-星期日;c:表示年份前两位数值;y:表示年份后两位数值m:表示月份,但是对于1、2月份需看作前一年的13、14月,这是为了简化闰年规则导致的复杂度;d:表示“日”;以上两个公式中,第二个其实就是第一个公式中的数值,加10后再取模,需要注意的是,在公历中1582年10月5日~1582年10月14日的这十天,是不存在的。
实际应用比如我们来计算2018年9月2日,带入第一个方程:w=(18+[18/4]+[20/4]-2*20+[13(9+1)]/5)+2-1)(mod7)=(18+4+5-40+26+1)(mod7)=14(mod7)=0于是,2018年9月2日这天,就是星期天!当然,我们现在手机里有了万年历,实际当中就不需要去计算了。
好啦!我的答案就到这里,喜欢我们答案的读者朋友,记得点击关注我们——艾伯史密斯!
这个问题的简化版本就是已知今天星期几,然后根据同余来推算另外某一天是星期几,这其中有很多简化的规则。
例如,365除以7的余数为1,因此非闰年的一年后的今天恰好是星期数加一;又例如「判决日原则」,即4月4日,6月6日,8月8日,10月10日,12月12日都与2月最后一天的星期数相同,这是一种便于记忆而且也便于计算数日子的方案,我们可以选取判决日中的任意一天做为推算的标准,更多技巧我在这里就不再介绍了。
一种比较复杂的推算方法涉及到查询「世纪表格」,然而也有一种简单的方法,那就是利用「蔡勒公式(Zeller's congruence)」进行计算,这个公式由德国数学家蔡勒最早提出。
这一公式如下图所示,公式来源于维基百科。
我们在网络上能找到大量用计算机程序实现蔡勒公式计算的程序。
不过在应用这个公式的时候需要注意,由于罗马教廷曾经在1582年改用了新历法,在1582年10月4日的后一天改为1582年10月15日,这一历法沿用至今,如果涉及到在这之前的推算,需要把多加进去的10天减去。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)