这个计算器能做什么
“每月第N个星期几计算器”可以帮你算出诸如“1月的第3个周一”或“12月的第1个周五”这类按星期循环规则对应的确切日期。这类规则在生活和工作中随处可见:美国的联邦法定节假日(例如感恩节是11月的第4个周四)、每月例会、发薪日、期权到期的“四巫日”周五,以及定期账单的扣款日等。你不必再对着日历一格格数,只需选择年份、月份、第几个以及星期几,工具就会直接告诉你它落在当月的哪一天。
使用方法
先选择年份和月份,再选择你要找的是第几个(第1到第5个),最后选定星期几。计算器会返回当月对应的日期。它还会告诉你这一次是否真实存在——“第5个星期几”只在部分月份才会出现——同时显示第一个符合条件的星期几是当月几号,方便你看清整组日期(往后每隔7天就是下一个)。
公式详解
首先确定该月1号是星期几,记为 \(f\)(1 = 周日,依次到 7 = 周六)。要找到目标星期几 \(w\) 的第一次出现,需要加上一个偏移量:\((w - f + 7)\bmod 7\) 天。此后每多出现一次正好相隔7天,因此第n次出现落在:
$$\text{日期} = 1 + \big((w - f + 7)\bmod 7\big) + (n - 1) \times 7$$
如果算出的数值超过当月的总天数,说明这一次并不存在(例如,当某月的周二只落在1号、8号、15号、22号和29号时,只有当该月至少有29天才会有第5个周二)。
实例演示
查找2024年1月的第3个周一。2024年1月1日是周一,所以 \(f = 2\)、\(w = 2\)。偏移量为 \((2 - 2 + 7)\bmod 7 = 0\),因此第一个周一就是1号。第3个周一为 $$1 + 0 + (3 - 1) \times 7 = \mathbf{15}$$ 所以日期是2024年1月15日——这一天正是美国的“马丁·路德·金纪念日”(Martin Luther King Jr. Day)。
常见问题
星期是怎么编号的? 周日 = 1,依次到周六 = 7,与下拉菜单中的顺序一致。
为什么会提示这一次不存在? 有些月份某个星期几只出现四次。如果你查询第5个,但实际只有四个,算出的日期就会超过当月天数,从而被标记为不存在。
怎么找当月最后一个星期几? 先选第5个;如果它存在,那它就是最后一个,否则第4个就是最后一个。