Lobsters | 📄 原文链接 | 2026-11-11 收录

一个更快的复活节日期算法

来源:benjoffe.com — 2026-11-10

📋 概述

作者把公历复活节的 computus 重写成一个只用 5 次乘法的定点版本,比常见日期库里的实现快约一倍,有效范围覆盖 -1100 万年到 +1600 万年——之所以定这个范围,是为了覆盖所有用有符号或无符号 32 位「rata die」表示日期的库。加速靠五个技巧:把输入整体平移以便常量折叠、从不真的计算 year mod 19、用无取反的方式算 X−(Y%7)、用 mod-pad 技巧加速 mod 30、以及把月与日打包进一个数一次算出来。

🔑 核心要点

💡 金句

这个范围看着像过度设计,但我之所以瞄着它,是为了让所有用 32 位 rata die 表示日期的库都被覆盖。
← 返回 Lobsters 首页