历法计算 · 日期转换

公历与农历日期转换

正确转换公历和农历日期,保留闰月、本地日期及支持范围,并区分历法标签与八字节气边界。

英文名称
Gregorian–Chinese Calendar Date Conversion
繁体中文
公曆與農曆日期轉換
拼音
Gōnglì yǔ Nónglì Rìqī Zhuǎnhuàn
别名
阳历农历转换 · 公历阴历日期转换 · 农历生日换算

编辑审核:

概览

公历与农历日期转换,是把一个有效民用日期映射为农历年、月、日和闰月状态,或反向找回公历日期。它并不是固定天数差:农历月按照月相安排,闰月受到节气规则约束,同一个月份序号在闰年可能出现两次。转换时必须保留普通月或闰月标记,确认算法支持的年份,并维持原始本地日期基准。对八字而言,这只是输入规范化的一步;年柱与月柱仍按节气交接判定,日柱与时柱则按连续日序、有效钟点和所选换日规则计算。

概念速览

公历
含闰年规则的民用太阳历日期
农历
阴阳合历的年、月、日
必要字段
普通月或闰月标记
不是固定差值
月相和节气规则逐年作用
八字分层
日期转换不直接决定全部四柱
核验方法
在支持范围内双向回转

先确认来源历法和完整日期

“四月初八”如果没有农历年份以及是否闰月,就不是完整日期;更早的公历记录还可能需要区分历史实际历法与推算公历。

来源标签与转换结果要分别保存。系统若静默猜测,之后出现四柱差异便无法追查。

  • 要求年、月、日和历法类型。
  • 把闰月状态存为字段,不只写在说明里。

农历换算依赖每年的天文结构

农历月与月相相连,节气帮助阴阳历和太阳年保持协调;闰月按照规则插入,并不会固定落在某个公历月份。

应使用持续维护的转换程序,或在明确范围内的权威年表。香港天文台对照表覆盖 1901 至 2100 年,并提醒未来月相或节气接近午夜时,预测更新可能造成日期相差一天。

  • 先确认数据或库的有效年份。
  • 不能靠减去固定天数推算农历。

把历法转换与四柱边界分开

农历生日可以先转换为对应民用日期,但八字年不一定从正月初一开始,八字月也不在农历初一切换;年、月柱仍要比较精确节气。

日柱属于连续六十日循环,时柱由有效本地时间与日干推导。历法名称不能覆盖这些计算层。

  • 转换完成后再执行完整四柱流程。
  • 不能直接把农历月份当作月柱。

用双向回转和闰月边界核验

在同一规则下把来源日期转为目标历法,再转回原历法;结果应恢复原日期和闰月状态,尤其要覆盖每个闰月的第一天与最后一天。

还要测试朔日、午夜附近、无效日期、支持范围端点和历史改历。证据不足以选定单一日期时,应返回带标签的候选,而不是伪造精确答案。

  • 同一月序的普通月和闰月都要测试。
  • 超出已验证范围时明确拒绝或降级。

来源与编辑依据

  1. Hong Kong Observatory: The Chinese Agricultural Calendar
    香港天文台說明中國農曆以月相月份配合太陽年並按中氣規則置閏,公曆農曆轉換必須保留閏月身分與支援年代香港天文台对中国农历如何结合太阳与月亮周期、月份、闰月和节气的官方说明。
  2. Hong Kong Observatory: The 24 Solar Terms
    香港天文台把節氣作為獨立天文時間點列示,支持把日期換算與八字年、月柱節氣邊界分層處理香港天文台对二十四节气、黄道每十五度分段,以及十二中气与十二节气交替排列的官方天文说明。
  3. OpenFate 编辑方法说明
    產品以香港天文台公曆農曆錨點、閏月首末日與雙向回轉測試換算,完成日期正規化後才執行完整四柱管線OpenFate 将确定性的排盘计算、传统解释框架与现代编辑说明分开处理。
这篇文章对你有帮助吗?

搜索知识库