星期几计算器是什么?
这个工具能告诉你任意一个日历日期对应的是星期几——无论是过去、现在还是未来。想知道自己出生那天是星期几、某个历史事件发生在星期几,或者将来某个截止日期落在星期几,只要输入年、月、日,就能立刻得到答案。计算采用的是基于「外推格里历」(proleptic Gregorian calendar)的蔡勒公式(Zeller's congruence)。
如何使用
先选择年份,再从下拉菜单中选月份,然后填入当月的日期。点击「计算」,结果框就会显示对应的星期名称。表格中还会同时给出原始的蔡勒指数(\(h\))和 ISO 星期编号(1 = 星期一……7 = 星期日),方便程序员和有兴趣深入了解的朋友参考。
公式详解
蔡勒公式完全依靠算术运算来推算星期——不需要任何查表。其中一月和二月被当作上一年的第 13 月和第 14 月来处理,这样可以让闰日的计算更加简单。设 \(q\) = 日,\(m\) = 调整后的月份,\(K\) = 年份的后两位(年 mod 100),\(J\) = 世纪数(年 ÷ 100),公式为:
$$h = \left( q + \left\lfloor \frac{13(m+1)}{5} \right\rfloor + K + \left\lfloor \frac{K}{4} \right\rfloor + \left\lfloor \frac{J}{4} \right\rfloor + 5J \right) \bmod 7$$这里 \(h = 0\) 表示星期六,1 表示星期日,依此类推,一直到 \(6\) = 星期五。
实例演算
以 2020 年 3 月 13 日为例:\(q = 13\),\(m = 3\),\(y = 2020\),于是 \(K = 20\),\(J = 20\)。那么 $$h = \left( 13 + \left\lfloor \frac{52}{5} \right\rfloor + 20 + \left\lfloor \frac{20}{4} \right\rfloor + \left\lfloor \frac{20}{4} \right\rfloor + 100 \right) \bmod 7 = (13 + 10 + 20 + 5 + 5 + 100) \bmod 7 = 153 \bmod 7 = 6 = \text{星期五}$$而 2020 年 3 月 13 日确实就是星期五。
常见问题
它能用于 1582 年以前的古老日期吗? 本工具使用的是「外推格里历」,因此对于那些最初按儒略历(Julian calendar)记录的非常久远的日期,算出的星期可能与历史记载不一致。
为什么星期六对应 \(h = 0\)? 这只是经典蔡勒公式的定义方式而已。本计算器会自动帮你把它转换成易读的星期名称。
任何年份都能输入吗? 可以,从 1 年到 9999 年的任何年份都支持。只需确保所填的日期在所选月份中是有效的即可。