公曆與農曆日期轉換
正確轉換公曆與農曆日期,保留閏月、本地日期與支援範圍,並分清曆法標籤和八字節氣邊界。
概覽
公曆與農曆日期轉換,是把一個有效民用日期映射成農曆年、月、日與閏月狀態,或反向找回公曆日期。它不是固定天數位移:農曆月依月相安排,閏月受節氣規則約束,同一個月序在閏年可能出現兩次。轉換時必須保留「平月或閏月」、確認算法支援年份,並維持原始本地日期基準。對八字而言,這只是輸入正規化;年柱與月柱仍以節氣交接判定,日柱與時柱則依連續日序、有效鐘點及所選換日規則計算。
概念速覽
- 公曆
- 含閏年規則的民用太陽曆日期
- 農曆
- 陰陽合曆的年、月、日
- 必要欄位
- 平月或閏月標記
- 不是固定差值
- 月相與節氣規則逐年作用
- 八字分層
- 日期轉換不直接決定全部四柱
- 核驗方式
- 在支援範圍內雙向回轉
先確認來源曆法與完整日期
「四月初八」若沒有農曆年份及是否閏月,並不是完整日期;較早期的公曆紀錄也可能需要分辨歷史採用曆法與推算公曆。
來源名稱與轉換結果要分欄保存。若系統靜默猜測,後續四柱差異便無法追查。
- 要求年、月、日與曆法類型。
- 把閏月狀態存成欄位,不只寫在說明裡。
農曆換算依賴每年的天文結構
農曆月與月相相連,節氣則協助陰陽曆與太陽年對齊;閏月依規則插入,不會固定落在某個公曆月份。
應使用持續維護的換算程式或在明示範圍內的官方年表。香港天文台對照表涵蓋 1901 至 2100 年,並提醒未來月相或節氣若接近午夜,預測更新可能使日期相差一天。
- 先確認資料或函式庫的有效年份。
- 不得用固定天數差推算農曆。
把曆法轉換與四柱邊界分開
農曆生日可先換回對應民用日期,但八字年不必在正月初一開始,八字月也不在農曆初一切換;年、月柱仍須比較精確節氣。
日柱屬於連續六十日循環,時柱則依有效本地時間與日干推導。曆法名稱不能覆寫這些計算層。
- 完成轉換後再跑完整四柱流程。
- 不能直接把農曆月份當作月柱。
以雙向回轉與閏月邊界核驗
在同一規則下把來源日期轉到目標曆法,再轉回原曆法;結果應恢復原日期與閏月狀態,尤其要覆蓋每個閏月的首日和末日。
也要測試朔日、午夜附近、無效日期、支援範圍端點與歷史改曆。證據不足以選定單一日期時,應回傳具名候選,而非虛構精確答案。
- 同一月序的平月與閏月都要測。
- 超出驗證範圍時明確拒絕或降級。
來源與編輯依據
- Hong Kong Observatory: The Chinese Agricultural Calendar香港天文台說明中國農曆以月相月份配合太陽年並按中氣規則置閏,公曆農曆轉換必須保留閏月身分與支援年代香港天文台對中國農曆如何結合太陽與月亮週期、月份、閏月和節氣的官方說明。
- Hong Kong Observatory: The 24 Solar Terms香港天文台把節氣作為獨立天文時間點列示,支持把日期換算與八字年、月柱節氣邊界分層處理香港天文台對二十四節氣、黃道每十五度分段,以及十二中氣與十二節氣交替排列的官方天文說明。
- OpenFate 編輯方法說明產品以香港天文台公曆農曆錨點、閏月首末日與雙向回轉測試換算,完成日期正規化後才執行完整四柱管線OpenFate 將確定性的排盤計算、傳統解釋框架與現代編輯說明分開處理。