在使用高斯算法计算 1 月 1 日落在一周中的哪一天,以及计算给定日历日期的序数日期后,如何计算后一天的星期几?
例如,高斯算法可以告诉我们,今年1月1日是星期日,一周的第7天。今天是10月22日,序数为295。如何使用此信息来计算今天是星期日?
对于普通年份(= 非闰年),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日晚了三周。
我发现的一种方法,我没有广泛测试,但似乎适用于我扔给它的日期,是......
(ordinal day + day of 1st of January - 1) % 7
其中周一 = 1,周二 = 2,...,周六 = 6,周日 = 0。
在问题中提到的示例中:
(295 + 0 - 1) % 7 = 0 (Sunday)