【发布时间】:2018-04-03 09:11:00
【问题描述】:
使用 Gauss 算法计算出 1 月 1 日是星期几,以及计算给定日历日期的序号日期后,如何计算后一个日期的星期几?
例如,高斯算法可以告诉我们,今年 1 月 1 日正好是一周中的第 7 天星期日。今天是 10 月 22 日,第 295 天。如何使用这些信息来计算今天是星期天?
【问题讨论】:
标签: algorithm date calendar date-arithmetic
使用 Gauss 算法计算出 1 月 1 日是星期几,以及计算给定日历日期的序号日期后,如何计算后一个日期的星期几?
例如,高斯算法可以告诉我们,今年 1 月 1 日正好是一周中的第 7 天星期日。今天是 10 月 22 日,第 295 天。如何使用这些信息来计算今天是星期天?
【问题讨论】:
标签: algorithm date calendar date-arithmetic
我发现的一种方法是……
(ordinal day + day of 1st of January - 1) % 7
周一 = 1,周二 = 2,...,周六 = 6,周日 = 0。
在问题中提到的示例中:
(295 + 0 - 1) % 7 = 0 (Sunday)
【讨论】:
对于普通年(= 非闰年),1 月 1 日和 10 月 1 日在一周中的同一天:
Jan 31
Feb 28
Mar 31
Apr 30
May 31
Jun 30
Jul 31
Aug 30
Sep 31
Sum 273 = 39 x 7
10 月 22 日正好比 10 月 1 日晚了三周。
【讨论】: