乾象曆與景初曆:三國的正朔之爭
西元238年的某一天,洛陽的官方曆書寫著五月,成都與建業的曆書卻寫著四月——沒有人抄錯,三個政權就是各過各的日子。在古代中國,頒布曆法是主權的一部分,你用誰家的曆,就等於承認誰是天子。這篇文章要講的,就是三國如何用三部曆法打了一場不流血的正統戰爭,以及我們的計算器如何把這場混戰精確地重現出來。
同一天,三種日期:「奉正朔」為什麼是政治
「正朔」二字拆開看:「正」是一年的第一個月,「朔」是一個月的第一天。制定並頒布這兩件事,在古代中國是天子的專屬權力——曆書由朝廷頒下,郡縣照著過日子,藩屬照著上表章。所以「奉正朔」從來不只是用哪本日曆的技術問題,而是一句政治宣誓:我承認你是合法政權。反過來說,自己頒一部曆,就是自立門戶的標準動作。
改朝換代時「改正朔」更是必備儀式。戰國以來流行「三正」之說:夏朝以建寅之月(約當今農曆正月)為歲首、商朝建丑、周朝建子,新王朝應該在這個循環裡往前挪一格,以示天命更新。漢武帝太初改曆定下建寅,此後成為常態——直到魏明帝把它翻出來重演了一次,我們後面會講到。
三國鼎立後,三家各自表態。曹魏受漢禪讓,自認有資格改曆;蜀漢自居漢室延續,改曆等於自打嘴巴,所以一動不動;孫吳兩頭都不是,索性自己挑了一部技術上最好的曆。順帶一提,孫權的第一個年號「黃武」,是把曹魏「黃初」和蜀漢「章武」各取一字拼起來的——兩邊都不得罪,也兩邊都不承認,把騎牆藝術直接寫進了年號裡。
曆法的內核是一把分數:朔策、歲實與上元
剝掉儀式外衣,一部中國古曆的核心其實是一套算術系統:用一個分數表示朔望月長度(朔策),一個分數表示回歸年長度(歲實),再選定一個起算點,之後的每個朔日、每個節氣都是純粹的計算結果。難點在於月亮和太陽的週期不可通約——十二個朔望月約354.37天,比回歸年短了將近11天,所以要按「十九年七閏」的規則插入閏月,讓月份不至於在四季裡漂移。這套系統的精度,幾乎完全取決於那兩個分數逼近真值的程度。
三國三部曆法的朔策放在一起,高下立判。四分曆每月比真值長約23秒,聽起來微不足道,但一年十二個多月、三百多年下來就會多出一整天——東漢四分曆從西元85年用到三國,累積誤差已經肉眼可見:日食本該發生在朔日(初一),卻頻頻出現在前一個月的最後一天「晦日」。對號稱通天的朝廷天文官來說,這是很難堪的事,也是每一次改曆最直接的推力。
至於起算點,古人的做法非常浪漫:往上追溯一個「上元」,在那個理想時刻,甲子日的夜半、朔、冬至三者重合,所有週期同時歸零,之後的一切都從這裡數過來。景初曆的曆元寫得明明白白——「夜半甲子朔旦冬至」,從壬辰年的上元數到景初元年,「積四千四十六,算上」。還有一件事貫穿三國:干支紀日。六十天一輪的甲子從春秋以來從未中斷,魏蜀吳三家的日干支完全同步。月份和年號可以各說各話,但「今天是丁亥日」三國無異議——這是當時跨政權對時的共同時鐘,也是今天我們驗證古曆的錨點。
- 四分曆朔策:29又499/940日 ≈ 29.53085日(每月比真值長約23秒)
- 乾象曆朔策:43026/1457日 ≈ 29.53054日(每月誤差約4秒)
- 景初曆朔策:134630/4559日 ≈ 29.53060日(每月誤差不到1秒)
- 現代測值:平均朔望月約29.53059日
劉洪的乾象曆:第一次承認月亮不是等速前進的
乾象曆的作者劉洪是東漢末年的天文學家,曾在皇家藏書機構東觀任職,與蔡邕合作過律曆著作。他長年實測,確認了四分曆「後天」的病根,於漢末完成乾象曆:回歸年縮短為約365.2462日,朔望月精確到每月只差幾秒。但真正讓他名留科學史的,是另一件事——他是中國曆法史上第一個承認月亮不等速運動的人。
在他之前,所有曆法都假設月亮每天走過相同的度數。劉洪發現月亮時快時慢,快慢變化以約27.55日為一個週期(即今天所說的近點月,現代測值約27.5546日),於是編出「月行遲疾」表,逐日記錄月亮的實際行度。這意味著計算出來的平均合朔時刻(平朔)可以被修正成真實合朔時刻(定朔)的雛形。要誠實地說:乾象曆的民用曆日仍然使用平朔排月,遲疾表主要用於日月食推算,曆書全面改用定朔要等到四百多年後的唐代——但這扇門是劉洪推開的。他還處理了月亮在黃道南北的偏離(月行陰陽),讓日食預測第一次有了像樣的幾何基礎。
諷刺的是,漢朝始終沒有正式採用這部當時最精密的曆法。反而是孫吳在黃武二年(西元223年)正月宣布「改四分,用乾象曆」,讓一部被舊王朝冷落的作品成了新政權的官曆,吳國學者闞澤還為它作注。乾象曆從此在江東一直用到西元280年吳亡,前後將近一甲子。
楊偉的景初曆:一場只維持三年的改正朔實驗
西元237年,山茌縣報告有黃龍出現,有司順勢上奏:魏承漢統,依三統之說「魏得地統,宜以建丑之月為正」。魏明帝曹叡採納,下詔改曆改元——《三國志.明帝紀》保留了詔書原文,直接「改青龍五年春三月為景初元年孟夏四月」。注意這個操作的粗暴程度:三月一夜之間變成四月,一年的開頭往前挪了一個月,連季節稱呼都跟著月序重排;但郊祀、迎氣等禮制活動仍按實際斗建(真實季節)進行,等於朝廷內部同時跑著兩套月份系統。
與政治動作一起推出的是楊偉編制的景初曆,技術上確實是一次升級:朔策134630/4559日,每月誤差壓到一秒以內,是三國精度之冠;楊偉在日月食推算上更進一步,嘗試計算食分(虧蝕程度)與初虧方位,而不只是預報「哪天有食」。不過也要公平地說,景初曆的回歸年約365.2469日,反而比乾象曆的365.2462日稍遜——它贏在月亮,不在太陽。
這場改正朔實驗只活了三年。景初三年(239)正月明帝去世,幼主曹芳即位,朝廷決定在正始元年(240)恢復建寅。但這裡出現了中國曆法史上罕見的怪物:為了把歲首挪回原位,景初三年在十二月之後又加了一個「後十二月」——這一年有十三個月,卻不是閏月!它不是十九年七閏的產物,而是兩套歲首制度切換時的接縫。做日期換算時,這是整個三國時段最容易踩中的陷阱。
景初這個年號還留下一個延伸謎團:日本出土過銘文為「景初四年」的銅鏡——一個官方從未存在過的年份(240年已改元正始)。是遼東或樂浪的工坊沒收到改元消息?是後世仿鑄?學界至今沒有定論。這批銅鏡又牽動另一樁公案:《魏志.倭人傳》記載卑彌呼遣使到魏是景初二年六月,但當時遼東還在公孫氏手裡(司馬懿滅公孫淵是同年八月),使者如何通行?不少學者主張應校勘為景初三年。這些爭議至今未解,我們在此如實標註。
蜀漢的沉默,與吳簡裡的證據
相較於魏、吳的動作,蜀漢的選擇是「什麼都不做」——從立國到263年亡國,一直沿用東漢四分曆。這不是技術上的懈怠,而是政治邏輯的必然:蜀漢的立國根基是「漢室未亡」,漢家的正朔改不得,一改就等於承認漢朝已經結束。於是三國中精度最差、誤差累積最久的曆法,反而被最堅定地守到了最後。附帶一提,《三國志》稱蜀「國不置史,注記無官」,此說歷來有爭議,但蜀漢傳世的天文曆日記錄確實是三國中最單薄的。
驗證這段歷史時,史料本身也在「站隊」。正史的五行志只為正統王朝記載天象災異,《三國志》吳書全書竟沒有一筆日食記錄——不是吳地五十多年沒發生日食,而是史官的正統觀替吳國把天象「消音」了。想知道吳國人實際過的日子,得繞開正史,去看出土文書。
轉機出現在1996年:長沙走馬樓古井出土了十餘萬枚孫吳簡牘,以嘉禾年間的基層行政檔案為主,大量文書帶有完整的年、月、日、干支。學者據此重建出孫吳實際行用的朔閏表,整體與乾象曆推步吻合——這是「吳國真的在用乾象曆」最硬的實物證據。也要照實說:個別月份的朔日與推步結果有出入,原因可能是頒曆傳播延遲、抄寫誤差或我們對曆法細節的理解仍有缺口,學界討論仍在進行。
我們的計算器怎麼實作與驗證這段曆法
本站的三國換算器不是一部曆,而是三條並行的時間線:魏線從220年起沿用四分曆,237年切換到景初曆並進入建丑歲首(含三月直接改稱四月的接縫),239年底掛入「後十二月」這個特殊月份(明確標記為非閏月),240年恢復建寅;吳線223年由四分曆切換到乾象曆,用到280年;蜀線則是四分曆一路到底。同一個西曆日期輸入進來,三條線各自回答「今天是幾月幾日」,你會親眼看到史書裡「同天不同日」是什麼意思。
實作上我們堅持精確有理數運算:朔策就是43026/1457和134630/4559這兩個分數本身,全程整數運算,不用浮點數,避免千年尺度下的累積誤差。曆元嚴格按景初曆原文「夜半甲子朔旦冬至」起算——從壬辰上元「積四千四十六,算上」。「算上」是首尾都算的包含式計數,這是古曆換算最經典的差一陷阱:實際經過的年數是4045年,換算下來上元落在西元前3809年。我們的測試會反向驗證這個年份的干支確實是壬辰,錯一年都過不了關。
驗證分兩路走,因為史料的正統偏見逼我們這麼做。魏晉這一側,我們從《宋書.五行志》取景初曆行用期的9筆日食記錄,逐筆換算成西曆日期,再與NASA的日食典對勘——日食必然發生在真實合朔,是老天爺蓋章的對時信號,9筆全數對上,曆算引擎才算通過。吳這一側正史無日食可用,我們改以學界重建的孫吳朔閏表逐年逐月對照——取223到280年間七個完整年份共85個月朔(含252年閏四月、263年閏三月兩個置閏錨點),85筆全中;而這些重建朔閏表背後最硬的實物依據,正是上一節講的走馬樓吳簡。至於文獻彼此矛盾、或學界尚無定論的日期(例如景初改元前後的部分事件繫月),計算器會如實標註,而不是替歷史做決定。
- 三線並行:魏(四分→景初,含建丑與後十二月)、吳(四分→乾象)、蜀(四分到底)
- 精確分數運算:朔策直接以43026/1457、134630/4559參與計算,零浮點誤差
- 曆元自證:壬辰上元、積4046「算上」,測試斷言上元年干支必為壬辰
- 雙路驗證:魏晉側《宋書.五行志》9筆日食×NASA日食典;吳側重建朔閏表七整年85筆月朔對照
相關頁面
- 古代曆法計算器(互動工具)
- 古代曆法完全指南(總覽)
- 農民曆原理與換算全解:陰陽合曆、置閏規則與2033閏十一月
- 後漢四分曆完整解說:三國漢曆原理、西元換算與日食驗證
- 宣明曆與日本和曆:用了823年的唐朝曆法|原理、歷史與西曆換算
- 儒略曆與羅馬紀日:Kalends、Nones、Ides 原理與換算|古代曆法計算器
- 羅馬共和曆是什麼?祭司政治置閏與凱撒445天亂年全解說
- 伊斯蘭曆換算原理:30年11閏的表格曆解說與西元對照計算器
- 希伯來曆原理與換算全解:完全演算法化的陰陽合曆
- 馬雅曆解說:長紀曆、卓爾金曆、哈布曆原理與西元換算
- 埃及曆與科普特曆換算指南:一年永遠 365 天、活了四千年的曆法
- 印度古曆換算指南:Kali Yuga 紀元、均值曆原理與閏月規則
- 干支與黃曆怎麼算?六十甲子換算原理與三千年紀日史全解析
常見問題
景初三年是西元幾年?怎麼換算成西曆?
大致對應西元239年,但要小心兩個陷阱:景初年間魏國以建丑之月為歲首,一年比慣常的建寅早一個月開始;而且景初三年在十二月之後多掛了一個「後十二月」,全年十三個月,一直延伸到約西元240年2月上旬才結束(後十二月對應240年1月12日至2月9日,2月10日才是正始元年正月朔)。所以「景初三年某月某日」不能按一般三國年份直接套換算表,建議用本站計算器選定魏線後逐日查詢。
三國時代魏、蜀、吳用的曆法一樣嗎?日期怎麼互相換算?
不一樣。吳從223年起用劉洪的乾象曆,魏從237年起用楊偉的景初曆(之前沿用四分曆),蜀漢則守著東漢四分曆直到263年亡國,所以三國會出現同一天日期不同的情況。跨國換算的橋梁是干支紀日——六十天一輪的甲子在三國完全同步,把日期先化成日干支,再換到另一國的曆線上即可,本站計算器就是這樣三線並行處理的。
乾象曆是什麼?和四分曆差在哪裡?
乾象曆是東漢末年劉洪編制的曆法,孫吳於223年正式採用,一直用到280年吳亡。相比四分曆,它的朔望月每月誤差從約23秒降到約4秒,回歸年也更接近真值;最重要的突破是首創「月行遲疾」——第一次承認月亮不等速運動,並編表逐日修正,為後世日月食推算奠定了基礎。
「後十二月」是閏月嗎?
不是。閏月是十九年七閏規則下為了對齊月亮與四季而插入的月份,而景初三年(239)的「後十二月」是曆制切換的產物:魏國要把歲首從建丑挪回建寅,必須在年底多補一個月當接縫,於是這一年有十三個月卻不含任何閏月。做日期換算時若把它當一般閏月處理,之後的日期會整整錯開一個月。
「景初四年」根本不存在,為什麼日本會出土景初四年的銅鏡?
魏國在240年已改元正始,官方從未有過景初四年,但日本確實出土過銘文為「景初四年」的銅鏡。可能的解釋包括邊郡或遼東、樂浪一帶的工坊未及時收到改元消息、銅鏡為後世仿鑄等,學界至今沒有定論。這批銅鏡也常被放在卑彌呼遣使入魏(景初二年或三年,本身就有校勘爭議)的脈絡裡討論,是三國曆法與東亞交流史交會的著名懸案。