八字知识库 · 排盘与历法
公历与农历日期转换
概览
公历与农历日期转换,是把一个有效民用日期映射为农历年、月、日和闰月状态,或反向找回公历日期。它并不是固定天数差:农历月按照月相安排,闰月受到节气规则约束,同一个月份序号在闰年可能出现两次。转换时必须保留普通月或闰月标记,确认算法支持的年份,并维持原始本地日期基准。
对八字而言,这只是输入规范化的一步;年柱与月柱仍按节气交接判定,日柱与时柱则按连续日序、有效钟点和所选换日规则计算。
概念速览
公历 含闰年规则的民用太阳历日期 农历 阴阳合历的年、月、日 必要字段 普通月或闰月标记 不是固定差值 月相和节气规则逐年作用 八字分层 日期转换不直接决定全部四柱 核验方法 在支持范围内双向回转 先确认来源历法和完整日期 “四月初八”如果没有农历年份以及是否闰月,就不是完整日期;更早的公历记录还可能需要区分历史实际历法与推算公历。来源标签与转换结果要分别保存。系统若静默猜测,之后出现四柱差异便无法追查。
要求年、月、日和历法类型。把闰月状态存为字段,不只写在说明里。农历换算依赖每年的天文结构 农历月与月相相连,节气帮助阴阳历和太阳年保持协调;闰月按照规则插入,并不会固定落在某个公历月份。
应使用持续维护的转换程序,或在明确范围内的权威年表。香港天文台对照表覆盖 1901 至 2100 年,并提醒未来月相或节气接近午夜时,预测更新可能造成日期相差一天。先确认数据或库的有效年份。
不能靠减去固定天数推算农历。把历法转换与四柱边界分开 农历生日可以先转换为对应民用日期,但八字年不一定从正月初一开始,八字月也不在农历初一切换;年、月柱仍要比较精确节气。日柱属于连续六十日循环,时柱由有效本地时间与日干推导。
历法名称不能覆盖这些计算层。转换完成后再执行完整四柱流程。不能直接把农历月份当作月柱。
用双向回转和闰月边界核验 在同一规则下把来源日期转为目标历法,再转回原历法;结果应恢复原日期和闰月状态,尤其要覆盖每个闰月的第一天与最后一天。还要测试朔日、午夜附近、无效日期、支持范围端点和历史改历。证据不足以选定单一日期时,应返回带标签的候选,而不是伪造精确答案。
同一月序的普通月和闰月都要测试。超出已验证范围时明确拒绝或降级。