Endless狼人殺曆法工具立即開玩

宣明曆:從長安到京都,用了823年的唐朝曆法

西元1582年6月21日拂曉,京都本能寺火起,織田信長橫死。日本史書記下的日期是「天正十年六月二日」——而算出這個日期的,是一部在中國本土早已被淘汰近七百年的唐朝曆法。它叫宣明曆,在日本一用就是823年,是日本史上服役最久的曆法;這篇文章講清楚它怎麼運作、為什麼能撐這麼久,以及我們的計算器如何一分不差地重現它。

史上最長壽的漢式曆法:從長安到京都

唐長慶二年(822),天文學家徐昂編成的宣明曆(全名長慶宣明曆)開始施行。以9世紀的標準,這是一部一流的曆法,尤其日食推算的理論深度為後世曆家所推崇。但它在中國本土只用了約七十年,到892年前後就被崇玄曆取代——王朝改曆是常態,一部曆法的平均壽命往往只有幾十年。

日本在此之前已陸續引進元嘉曆、儀鳳曆、大衍曆、五紀曆,大約每隔幾十年就跟著中國換一次。貞觀四年(862),日本改行宣明曆;它如何傳入日本,一說是經由渤海使節帶去,學界仍有討論。誰也沒想到,這一換就是最後一次。

894年,菅原道真建議停派遣唐使,新曆法從此斷了來源;曆道又由賀茂氏世襲(後為幸德井家),推曆成了家學而非持續校正的科學,改革誘因盡失。結果宣明曆在日本從862年一路用到1684年,連續823年。這是日本史上用得最久的曆法,也常被稱為漢式曆法連續施行時間的紀錄——不過要誠實地說,「史上最長」得限定在東亞曆法的脈絡,歐洲的儒略曆用得更久。順帶一提,高麗也用了宣明曆約四百年。

曆法的原料:一把尺與兩個分數

傳統中國曆法本質上是一套演算法:給定任何一年,算出每個月的初一(朔)落在哪天、二十四節氣在哪天、閏月放在哪裡。要做到這件事只需要少數幾個天文常數,而宣明曆把它們全部寫成分數。

分母 8400 稱為「統法」——把一天切成 8400 分。任何時刻在「日」以下的零頭叫「小餘」,是 0 到 8399 之間的整數。這個設計讓整部曆法可以純用整數運算跑完,完全不需要小數,也就完全沒有捨入誤差——這點對電腦重現極為友善,文末會回到這裡。

準確度如何?朔實與現代測值(29.530589日)只差約百萬分之六日,每個月差不到一秒,823年下來月相的累積誤差不到兩小時——月亮這一側幾乎完美。問題出在歲實:它比實際回歸年(約365.2422日)長了大約3分半鐘。一年看不出來,823年就累積成約兩天。這顆定時炸彈,我們稍後引爆。

從平朔到定朔:兩張修正表

最粗糙的排月法叫「平朔」:假設月亮等速運行,從曆元起每隔 29.5306 天放一個朔。但真實的日月運動並不等速——用現代的話說,地球和月球的軌道都是橢圓。真實合朔時刻與平均值可以差上十個小時以上,足以跨過午夜、讓初一整整差一天。

宣明曆採「定朔制」:平朔加上兩項修正。第一項是「日躔盈縮」——太陽視運動的快慢(冬至前後偏快、夏至前後偏慢),查 24 氣立成表,每個節氣一格。第二項是「月離遲疾」——月亮過近地點時快、遠地點時慢,起伏比太陽劇烈得多,查 28 轉日立成表,以近點月(約27.55日)為週期逐日一格。「立成」就是預先算好的查表值,實際使用時在格與格之間內插。

修正完的定朔落在哪一天,那天就是初一。由於修正量逐月不同,大月(30天)、小月(29天)的排列不再規律交替,而是一串由天象決定的序列——這正是和曆日期無法用簡單公式換算、只能逐月重算的根本原因。

節氣則用「平氣」(恆氣):從冬至起把回歸年均分成24份。置閏採「無中氣置閏」:哪個月分不到中氣,就讓它當閏月。

進朔:四分之三日的門檻

初一定案前還有最後一道加工。若定朔的小餘 ≥ 6300——即合朔時刻落在一天的最後四分之一,約當傍晚六點以後——朔日就往後挪一天,稱為「進朔」。

為什麼要這樣做?通行的解釋是避免「晦而月見」:合朔若發生在初一入夜之後,那天清晨東方天空其實還掛著殘月,「初一還看得到舊月」在觀念上說不過去;把初一往後推一天就解決了。這個解釋合乎曆算傳統,但古人的原始動機為何,仍有討論空間。

值得注意的是,唐代的進朔規則帶有例外條款(例如遇交食或節氣相關的情形不進朔);而從日本歷代頒曆的實績歸納,日本實務上採用的似乎是平坦的單一判準——小餘過線就進,不看例外。我們的計算器採用日本實務判準,理由見文末。

進朔的存在意味著:即使兩地的天文計算完全相同,光是進朔處理不同,初一就能差一天。這是日本和曆與中國曆日期分歧的原因之一。

頒曆的人味:日本的人為校訂

紙上的演算法是一回事,朝廷實際頒下的曆是另一回事。陰陽寮的曆博士推好曆之後,頒行版本有時會被人為調整,動機多屬儀式與吉凶考量。

這些校訂不是傳說:日本國立天文台(NAOJ)整理的校訂清單共 157 筆——也就是頒行曆與純規則推算不合、需要用人為介入解釋的日期——而最後一筆止於1555年。換句話說,16世紀中葉以後,頒曆就是純計算,再無人為之手。

這給了我們一個漂亮的檢驗窗口:1556到1685年之間,涵蓋戰國末期與江戶初期,純規則推算與史實曆日完全吻合。順帶一提,曆在當時是不折不扣的政治:天正十年(1582)年初,織田信長還曾為京曆與三島曆在閏月安排上的分歧介入朝廷曆議——幾個月後他死於本能寺,那天是天正十年六月二日,換算西曆(儒略曆)為1582年6月21日。

823年的代價:兩天的漂移與貞享改曆

回到那顆定時炸彈。歲實每年多出約3分半鐘,積累到17世紀,曆面上的節氣已比實際天象晚了約兩天——實際冬至都過了,曆上還寫著要再等兩天。日月食預報也開始當眾出糗:報食不食、不報而食。

同一時期的中國早已換過授時曆、大統曆,再到引入西方天文學的時憲曆;日本卻凍結在9世紀的唐曆上。天文學者澀川春海(安井算哲)以實測揭露誤差,參考元代授時曆並針對日本的經度差調整,編成日本人自製的第一部官方曆法。改曆於1684年定案,1685年貞享曆施行,宣明曆的823年就此落幕。

結語有點諷刺:宣明曆不是因為爛才被換掉的——以9世紀的標準它相當優秀,月亮那一側尤其精準。它只是被用得太久。任何模型一旦離開觀測與修正,再好也會慢慢漂走。

我們的計算器怎麼實作與驗證宣明曆

實作上,我們完全按這部曆法本來的樣子計算:所有常數以統法 8400 為公分母的分數表示,全程整數運算,零浮點誤差——823年從頭跑到尾,一分都不會歪。計算流程如下:

在純計算之上,再疊一層「日本頒曆校訂」:把 NAOJ 整理的 157 筆人為校訂(止於1555年)作為覆寫層套用,讓輸出對齊「當時的人實際在用的曆」,而不只是數學上正確的曆。

驗證方面,1556–1685年間不存在任何校訂紀錄,頒曆等於純計算,是天然的乾淨測試區——我們的推算在這整段期間與史實曆日全部吻合,包括本能寺之變(天正十年六月二日=儒略曆1582年6月21日)與關原之戰(慶長五年九月十五日=格里曆1600年10月21日)。西曆輸出遵循史學慣例:1582年10月改曆之前以儒略曆表示,之後以格里曆表示。

相關頁面

常見問題

宣明曆(日本和曆)日期怎麼換算成西曆?

年份查年號對照表即可(例如天正十年=1582年),但月、日沒有簡單公式:每個月的初一由定朔計算決定,大小月與閏月逐年不同,必須整年重算。實務上請用換算工具(例如本站的古代曆法計算器):輸入年號與和曆年月日,即得對應的西曆日期。注意1582年10月西方改行格里曆,之前的日期慣例上以儒略曆表示。

天正十年六月二日(本能寺之變)是西元幾年幾月幾日?

儒略曆1582年6月21日。同年10月教宗頒行格里曆(現行公曆),史學慣例上改曆之前的日期用儒略曆表示;若換算成格里曆,則相當於1582年7月1日。

為什麼同一天,日本和曆和中國農曆的日期會不一樣?

894年停派遣唐使之後,日本凍結在宣明曆,中國則持續改曆(崇玄、授時、大統、時憲……),兩邊的常數與演算法不同;再加上進朔處理的差異與日本頒曆的人為校訂,初一可以差一天、閏月可以放在不同月份,日期自然分歧。

宣明曆用到什麼時候?為什麼能用823年?

日本自862年施行,最後一年是1684年,1685年起改用貞享曆,共823年。長壽的主因不是它特別準,而是:遣唐使停派後新曆法斷了來源、曆道由賀茂氏世襲缺乏改革誘因、加上改曆牽動朝廷儀典的政治成本太高。代價是到17世紀時,曆面節氣已比實際天象漂移約兩天。

慶長五年九月十五日(關原之戰)是西元哪一天?

格里曆1600年10月21日。1582年10月之後西方已改行格里曆,這類日期慣例上直接以格里曆表示;若換成儒略曆計算,則是1600年10月11日。