核心答案:推算星期几只需模 7 加法——新星期 = (已知星期 + 间隔天数) ÷ 7 取余数。2025 年 1 月 1 日是周三,那么 100 天后(4 月 11 日)是 (3+100) mod 7 = 5,即周五。
模 7 推算法
一周 7 天循环,所有星期推算本质是模 7 算术:
- 把星期转成数字(周一 = 1 … 周日 = 7 或 0)
- 加上间隔天数
- 对 7 取余
实例:3 月 8 日(周六)之后 45 天是几号星期几?45 mod 7 = 3,周六 + 3 = 周二。日期上 3 月剩 23 天,45 − 23 = 22,即 4 月 22 日周二。
跨年移位规律
- 平年(365 天):365 mod 7 = 1,同月同日星期 +1
- 闰年(366 天):366 mod 7 = 2,同月同日星期 +2
实例:2024 年 6 月 1 日是周六,2025 年 6 月 1 日 = 周六 + 1 = 周日(2024 虽为闰年,但 2 月 29 日在 6 月之前,按平年移位);2026 年 6 月 1 日 = 周一。
| 年份 | 类型 | 6 月 1 日星期 |
|---|---|---|
| 2024 | 闰年 | 周六 |
| 2025 | 平年 | 周日 |
| 2026 | 平年 | 周一 |
| 2027 | 平年 | 周二 |
蔡勒公式
任意日期的星期直接计算(公历):
h = (q + ⌊13(m+1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ + 5J) mod 7
- q = 日,m = 月(1、2 月按上一年的 13、14 月算)
- K = 年份后两位,J = 年份前两位
- h:0 = 周六,1 = 周日,2 = 周一 … 6 = 周五
实例:2000 年 1 月 1 日,按 1999 年 13 月 1 日算:q=1, m=13, K=99, J=19。h = (1 + ⌊13×14/5⌋=36 + 99 + 24 + 4 + 95) mod 7 = 259 mod 7 = 0?重新验算:1+36+99+24+4+95 = 259,259 mod 7 = 0 → 周六。正确,2000 年元旦确实是周六。
心算速算技巧
- 锚点法:记住几个「同星期日」——4/4、6/6、8/8、10/10、12/12 在同年必是同一个星期几(2025 年都是周五)
- 月末法:平年 2 月最后一天与 3 月最后一天星期相同
- 百年码:2000-2099 年间,年份后两位 ÷ 12 的商 + 余数 + 余数÷4,可速查该年元旦
常见误区
- 「生日每年星期固定」:错。平年移 1 天、闰年移 2 天,你的生日星期每年都在变,约 28 年才完成一轮完整循环
- 「间隔天数直接加不用取余」:间隔 30 天 = 30 mod 7 = 2,只需加 2,但忘记取余直接加 30 会算错
- 「闰年所有日期都 +2」:只有 2 月 29 日之后的日期受当年闰日影响;1-2 月跨年推算要分段处理