六十甲子日柱循环校验
以天干地支标准次序、相邻日不变式、可信基准日与边界案例校验六十甲子日柱循环。
概览
六十甲子日柱是十天干与十二地支按标准次序同步前进的结果。两个序列在最小公倍数六十步后同时回到起点,因此只会出现六十组阴阳相配的组合。可信的排盘引擎不只要显示熟悉的干支名称,还要证明有效日期每天恰好前进一位、六十天后回到同一组、基准日前的日期能正确回绕,以及闰日和民用历法改革不会让循环重复或跳号。历史时区与八字换日界线必须先确定,再做循环校验。
概念速览
- 天干序列
- 十天干
- 地支序列
- 十二地支
- 共同周期
- 六十组有序干支
- 相邻日规则
- 循环索引恰好前进一位
- 回归规则
- 相隔六十日回到同一组
- 执行顺序
- 历法、时区与换日处理之后
六十组来自两个同步前进的序列
每天的天干索引与地支索引同时加一,直到十与十二的最小公倍数六十才回到相同状态。
这个结构也维持阴阳同类配对:阳干只配阳支,阴干只配阴支。出现阴阳不相容的组合,代表数据或索引已损坏。
- 使用标准天干、地支次序。
- 直接拒绝不可能的阴阳配对。
局部不变式最容易抓出索引错误
每个有效日期的下一天必须前进一组,前一天必须退一组;加减六十日应保持同一干支,即使跨越月底、年底或闰日也一样。
这些测试比少量孤立对照日更容易发现负数取模、零起算与一起算混用,以及闰日重复等问题。
- 同时测试基准日前后日期。
- 覆盖年末与闰年交界。
独立校验的基准日把循环固定到真实时间轴
循环结构本身无法判断某个历史日期是哪一柱,必须至少有一个外部可核对的基准日;距离较远的多个基准点,还能揭露历法转换或纪元偏差。
基准日的原历法、时间基准与索引方式都要保存。干支虽对但挂在错误的民用换日点,仍不是有效基准。
- 采用多个独立参考日期。
- 版本化基准点与纪元契约。
先决定有效八字日,再验证六十循环
接近本地午夜或流派所用 23:00 换日的出生,在不同明示方法下可能落入不同日期;历史时区与重复钟点也可能让瞬间跨界。
应分别算出各个受支持的方法,再对每个候选应用相同循环规则。不能为了配合偏好的解读而更换基准日。
- 把时间解析与循环索引分成两层。
- 范围跨界时返回有标签的候选。
来源与编辑依据
- Hong Kong Observatory: Heavenly Stems and Earthly Branches香港天文台列明十天干、十二地支與六十干支的標準循環,支持陰陽配對、相鄰日遞進與六十日回歸規則香港天文台对天干地支标准次序、干支纪日与六十甲子的现代官方说明。
- OpenFate 编辑方法说明產品以多個外部基準日、雙向日期、閏日、跨年、歷史曆法與日界案例作不變式測試,不以單一查表結果代替算法驗證OpenFate 将确定性的排盘计算、传统解释框架与现代编辑说明分开处理。