当前位置: 首页 > 技术落地

如何快速计算任意一天是一周中的哪一天?有哪些技巧呢?

时间:2024-02-29 23:11:59 技术落地

答:初等数论中,根据年、月、日计算星期的公式有很多。

我来介绍一下吧。

相关知识在介绍公式之前,我们先了解一些与数学和公历相关的知识:(1)闰年规则:每四年闰年,无闰年,每四百年再闰年,闰年为366天,平年是365天; (2)闰月规则:闰年,2月中旬多加一天,所以平年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 同余,记为 aeqb(mod m)。

根据上面的日历规则和数学工具,我们可以使用同余技术来处理,因为要计算某一天是星期几,我们只需要选择一个固定的日期,然后计算相差的天数从另一个日期取“7”的余数。

Zeiler公式其中符号:w:代表星期,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六,0-星期日; c:代表年份的前两位数字; y :代表年份的最后两位 m:代表月份,但一月和二月需要被视为上一年的第 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日是星期日!当然,现在我们手机上有了万年历,我们在实际中就不再需要计算了。

好的!我的回答就这些了。

喜欢我们答案的读者,请记得点击关注我们——Amber Smith!这个问题的简化版本是知道今天是星期几,然后利用同余来计算另一天是星期几。

这里面有很多简化的规则。

例如,365除以7的余数是1,所以非闰年一年后的今天正好是周数加一;又如“审判日原则”,即4月4日、6月6日、8月8日、10月10日、12月12日都是与2月最后一天相同的周数。

这是一个易于记忆和计算天数的计划。

我们可以选择判断日中的任意一天作为计算的标准。

,这里就不多介绍技巧了。

更复杂的计算方法涉及查询“世纪表”,但也有一种简单的方法,就是利用“泽勒同余”来计算,该方法最早由德国数学家泽勒提出。

这个公式如下图所示,公式来自维基百科。

我们在网上可以找到大量使用计算机程序来计算Zeiller公式的程序。

不过,应用这个公式的时候需要注意。

由于罗马教廷于1582年更换新历,将1582年10月4日后的第二天改为1582年10月15日。

这个历法至今仍在使用。

如果涉及到在此之前计算,则需要减去额外的10天。

这是我小时候从一位老数学老师那里学来的。

每年你只需要记住12个数字。

查看日历卡。

如果每个月的第一天是星期几,则将其记录为数字减1,周日记录为7减1。

例如,2020年1月至12月的第1天是星期三,星期六,星期日,星期三,周五、周一、周三、周六、周二、周四、周日、周二,那么需要记住的数字依次是2、5、6。

,2,4,0,2,5,1,3,6,1。

然后,将对应的数字加上该月的第几天,然后除以 7。

余数就是星期几。

如果没有剩余的话,就是周日了。

比如今天是8月21日,那么(21+5)÷7=3...5,即今天是星期五。