快速根据日期判断星期
基姆拉尔森公式 (Kim Larsen Formula)
- 原理:O(1) 数学公式直接计算。
- 默认基准:公元1年1月1日为星期一。
- 核心调整:1月和2月视作上一年的13月和14月 (
m+=12; y--;)。 - 代码公式:
// 0=周一, 1=周二 ... 6=周日 int w = (d + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400) % 7; return w + 1; // 转为 1-7 - 记忆点:
- 包含闰年判断逻辑 (
y/4 - y/100 + y/400)。 - 月份项是
2*m + 3*(m+1)/5。
- 包含闰年判断逻辑 (
浙公网安备 33010602011771号