儒略日序與日柱計算
了解民用出生日期如何轉成連續日序,再依校驗過的基準日計算日柱,避免正午、換日與取整造成一日誤差。
概覽
日柱需要連續時間軸,不能只靠逐月查表。先確認原始曆法、出生地與採用的八字換日界線,再把有效日期轉成定義清楚的儒略日或整數日序,以校驗過的干支基準日計算日差,最後對六十取模。天文儒略日從 UTC 正午換日,民用日期通常從午夜開始,部分八字流派又以 23:00 換日;若未先統一這三層約定,即使公式看似正確,也可能讓整個日柱偏移一天。
概念速覽
- 日序用途
- 把不同年月放在同一條連續時間軸
- 天文儒略日
- 以 UTC 正午為換日點
- 必要規格
- 明確的整數日序與取整約定
- 循環算法
- 相對基準日的日差對 60 取模
- 八字前置步驟
- 先套用所選本地換日界線
- 常見錯誤
- 半日或一日的無聲偏移
連續日序先消除月份與曆法的不規則
民用月份長短不同,閏年會增加日期,歷史紀錄也可能使用不同曆法。把已驗證的日期轉成連續日序,才能穩定計算任意兩天相隔多少日。
原始日期和曆法標籤仍須保留。日序只是計算層的標準化結果,不能取代史料來源。
- 先按原始曆法驗證日期是否存在。
- 並列保存原始值與標準化值。
儒略日與民用整數日的換日點並不相同
天文儒略日在 UTC 正午進入下一個編號;不少程式會使用經午夜調整的儒略日序,但加半日、取整或編號方式可能不同。
計算六十日循環前,必須說明時間基準、取整方法與有效八字日。把不同約定混用,是日柱差一天最常見的來源。
- 記錄正午、午夜與 floor 規則。
- 不可只複製公式而忽略它的紀元約定。
以可靠基準日定位,再對六十取模
選擇在同一曆法與換日規則下、干支日已有獨立證據的基準日期。目標日序減去基準日序,加上基準索引後,使用非負的六十餘數得到日柱位置。
基準日期、索引從零或一開始,以及取模實作是一組不可拆開的契約。只改其中一項,仍會產生看似合理但整體錯位的干支名稱。
- 將基準日期與循環索引一起版本化。
- 處理早於基準日的負餘數。
用相鄰日與長距離不變式驗證實作
可靠算法應證明有效日期的前後一天恰好退進一位,相隔六十日回到同一組干支,而且閏日與曆法改革不會打斷連續循環。
還要測試本地午夜、所選 23:00 換日、時區偏移切換與歷史曆法轉換。四柱確定後才進入命理解讀。
- 在閏日與改革日期兩側放置基準測試。
- 把時間計算測試與解讀內容分開。
來源與編輯依據
- U.S. Naval Observatory: Julian Date Converter美國海軍天文台說明儒略日期以連續日數表達時間,並提供格里曆與儒略曆輸入換算;天文儒略日的正午起算須在整數日序前明確正規化美國海軍天文台用於把格里曆、儒略曆日期轉為連續儒略日期時間軸的官方天文參考。
- OpenFate 編輯方法說明產品以版本化基準日、非負六十取模及前後一日與六十日不變式校驗日柱,並把曆法、時區與八字換日規則分層處理OpenFate 將確定性的排盤計算、傳統解釋框架與現代編輯說明分開處理。