黃帝紀年無必要、知道演算法你也能編曆書

曉原 國學新知

▍在全球化的今天,世界通行的公曆是一個共同的時間計量和指稱系統。如果某個國家自說自話改用別的系統,只會給自己和別的國家帶來巨大麻煩,將是完全得不償失的。


用農曆和公曆並行使用,用黃帝紀元代替公元紀年,這是最近被提得較多的有關「曆法」和「過日子」的話題。



黃帝生卒年月都不可靠


今年的全國兩會上,政協委員張其成提出《設立軒轅紀年(XY)的理由與建議》的提案。提案寫道,「軒轅紀年是以軒轅黃帝即位後創製曆法的年份甲子年為元年的紀年方式。是根據黃帝歷、天干地支及《帝王世紀》《皇極經世》推算出來的。」根據推算,軒轅元年即公元前2697年為干支紀年開始的甲子年。「軒轅紀元=公元紀元+2697年。如1912年民國元年就是軒轅4609年。公元2015年就是軒轅紀年4712年。」


根據新聞報道,提議者提出:「2015年3月3日即是軒轅紀年4712年3月3日。對發生在軒轅紀年之前的事件,我們可以用軒轅前紀年表示。比如,軒轅生於軒轅前20年;上海和長三角地區的良渚文化大約處於軒轅前2603-1603年時期;長江流域下游的河姆渡文化則約處於軒轅前4303-2303年時期。」


無獨有偶,清華大學特聘教授許文勝等也在網上倡議,中華紀年應恢復「黃帝紀年」,並徵集支持者的簽名。倡議者認為,所謂公元並不是真正的「公元」,而是基督教紀元,「公元前」的英文是Before Christ(基督出生之前),「公元後」Anno Domini是拉丁文,意為「基督出生之後」。中國稱之為「公元」,其實不確。西方國家明確稱之為基督教紀元,而伊斯蘭國家多用「伊斯蘭紀元」。不少國家使用自己的紀元,只在外交和國際事務中用基督教紀元。中國農曆雖然年份與公元一樣,但實際上曆法完全不同。


倡議書中還提出了黃帝紀元的計算公式,稱:「經過大量考證史實,參照夏、商、周的參考資料,再加上精密的推算過程,我們確認了黃帝紀元的起始問題,那就是以現在西元紀年體系表述的西元前2698年,這在《辭源》中也得到了驗證。因此,我們得出了計算黃帝紀元的公式,即:黃帝紀年=西元紀年+2698年。」



算錯的人很可能不知道沒有公元0年,於是公元前1年到公元1年成了兩年。


細心一看,可以發現,提出黃帝紀元的兩個群體,所計算出的年份竟然還差了一年。此外,為了增加放假的天數,不少人認為應該增加農曆的節日,並同時提出了提高農曆地位的意見。


改歷改元都無必要


「沒有必要認真對待,這兩個都是考慮欠周的輕率提案。」上海交通大學科學史系教授江曉原認為,黃帝的年代尚無確切實證,因此「黃帝紀年」在學理上尚難成立,怎麼可能從一個沒有定論的時間點往後推算呢?


本來提出一個有文化意味的紀年未嘗不可。紀年與曆法無關,只是對年份的累計指稱而已。比如明清以來形成了一帝只用一個年號的傳統,而在唐宋或之前,一個皇帝可能有多個年號,除了即位改元之外,皇帝遇到某些事情也會改元,比如開元、天寶都是唐玄宗的年號。年號太多也容易造成混亂。


如果按照中華人民共和國成立來紀年,估計也不能滿足提案者的要求,因為他們期望的是一個非常久遠的年代。


改紀年的社會成本也非常之高,幾乎所有的文獻辭典都得改,對於用慣了公元紀年的人來說,將是非常不便的,這是提案者沒有考慮周全的問題。


江曉原說,農曆的地位在實際使用中已經不低了,沒有必要再提出進一步抬高的提案。我們每天的報紙都會註明農曆日期,新聞聯播也會播報農曆日期。如果提案者的目的是增加每年節日的數量,這在經濟放緩的背景下是有積極意義的。節日增多可以適度放緩節奏,可以拉動內需消費。但何時放假,只需約定俗成即可,為此而更改曆法,從學理說是多餘的。


中國古代曆法的功用有三:其一是政治上王權的宣示,比如明清時代每年對朝鮮、琉球等屬國的曆書頒賜。其二是日常生活上的使用。其三是與周邊民族國家的交流,需要一個共同的時間計量和指稱系統。在全球化的今天,世界通行的公曆就是一個這樣的系統。如果某個國家自說自話改用別的系統,只會給自己和別的國家帶來巨大麻煩,將是完全得不償失的。事實上,世界上絕少有國家只使用自己的紀年而不用公曆的。


曆法的政治功能


在中國古代,造歷由皇家壟斷,皇帝每年要向民間頒行曆書,比如最早時周天子有向諸侯「頒告朔」之禮。在古代中國人的觀念中,採用誰家的曆法,就等於奉誰家的正朔,是誰家的臣民了。


在曆書上附著政治的行為,到民國時期仍然存在。雖然那時採用了公曆,表面看跟國際接軌,但仍然跟黃曆相對應,只是換了另外一副面目。每年的曆書上,都要寫「總理遺囑」、「三民主義」之類的內容。每次改歷,「中央黨部」都要派人參加,而天文學家甚至比「中央黨部」的代表還要政治化,他們每一頁上都摘引好多政治的東西,認為這樣才能把政治理念宣傳到窮鄉僻壤去,搞得曆書像一個政治手冊,很好笑。


這種傳統甚至在孫中山身上也能看到痕迹。他就任臨時大總統之後發布的第一條命令,不是關於軍事、政治或外交的,而是《改用陽曆令》!雖然是改用西方的曆法,但還是中國古代的政治思想在起作用——曆法是統治權的象徵。


曆法和歷史事件年份日期的表達


儒略曆(Julian calendar)是由羅馬共和國獨裁官儒略·愷撒(即蓋烏斯·尤里烏斯·凱撒)採納數學家兼天文學家索西琴尼計算的曆法後,於公元前45年1月1日起執行的取代舊羅馬曆法的一種曆法。一年設12個月,大小月交替,四年一閏,平年365日,閏年於二月底增加一閏日,年平均長度為365.25日。由於累積誤差隨著時間越來越大,1582年後被教皇格里高利十三世改善,變為格里曆,即沿用至今的公曆。


格里高利曆是公曆的標準名稱,是一種源自於西方社會的曆法。它先由義大利醫生、天文學家、哲學家、年代學家阿洛伊修斯·里利烏斯與克拉烏等學者在儒略曆的基礎上加以改革,後由教皇格里高利十三世於1582年頒布。而公元即「公曆紀元」,又稱「西元」。


1949年9月27日,經過中國人民政治協商會議第一屆全體會議通過,中華人民共和國使用國際社會多數國家通用的西曆和西元作為曆法和紀年。


用哪種曆日來表達一個歷史事件的日期,與用哪種曆法來推算該時間的日期,完全是兩回事。


比如牛頓的生日就有1642年12月25日(儒略曆)和1643年1月4日(格里曆)兩種表達,「十月革命」則有1917年10月25日(儒略曆)和1917年11月7日(格里曆)兩個日期。英國直到1752年、俄國直到1919年才使用格里曆,在牛頓出生、「十月革命」爆發時,事件發生的國家都還在使用儒略曆。


而天文學家在推算一個歷史事件發生的日期時,既不使用儒略曆也不使用格里曆,我們使用「儒略日」——沒有年、月單位,只有日的計時體系。例如,武王伐紂的牧野之戰發生於「儒略日」1340111日,孔子誕生於「儒略日」1520087日,等等。而「儒略日」與公曆之間的對應關係是明確的:「儒略日」起算點為公元前4713年1月1日(儒略曆)。


曆法·歷譜·曆書


說到這裡,有三個概念有必要釐清:曆法、歷譜和曆書。


曆法,在中國古代其實是指數理天文學(mathematical astronomy),即推算日月行星運行規律的方法。


歷譜,這才是是英文calendar的意義,是明確當年月份、日期的表。在我們今天的日常話語中,也經常將它稱為「日曆」,它是要用曆法推算出來的。


歷譜再加上歷注(關於各種「宜」、「忌」的附註,如「宜出行」、「宜嫁娶」、「諸事不宜」之類),就成了曆書,也就是以前的皇曆(黃曆)。


江曉原說,現在談到天文曆法,人們馬上會想到日曆(月份牌),但編製日曆,只是曆法中極小一部分功能。


歷譜至遲在秦漢竹簡中已可見到實物。曆書在秦漢時也已出現,逐漸演變為後世之「皇曆」及清代之「時憲書」。


中國古代所稱的曆法,其文獻通常在歷代官修史書之《律曆志》中保存下來。總計有近百種曆法曾在中國古代行用或出現過,時間跨度近三千年。


古代中國曆法的典型代表,如唐代《大衍曆》(公元727年修成),包括如下七章:


「步中朔」章6節,主要為推求月相之晦朔弦望等內容。

「步發斂」章5節,推求二十四節氣與物候、卦象的對應,包括「六十卦」、「五行用事」等神秘主義內容。

「步日躔」章9節,討論太陽在黃道上之視運動,其精密程度,遠遠超出編製歷譜之所需,主要為推算預報日月交食提供基礎。

「步月離」章21節,專門研究月球運動。因月球運動遠較太陽運動複雜,故篇幅遠大於上一章,其目的則同樣是為預報日月交食提供基礎——只有將日、月兩天體之運動同時研究透徹,才可實施對日月交食之推算預報。

「步軌漏」章14節,專門研究與古代授時有關之各種問題。

「步交會」章24節,在前「步日躔」、「步月離」兩章基礎上,給出推算預報日月交食之具體方案。

「步五星」章24節,以數學方法分別描述金、木、水、火、土五大行星之運動。


江曉原說:「很容易看出,這樣一部典型曆法,其主要內容,是研究日、月、金、木、水、火、土五大行星這七個天體——古代中國稱為『七政』——之運動規律;而其主要功能,則是提供推算上述七天體任意時刻天球位置之方法及公式。至於編製歷譜,特其餘緒而已。」


那麼古人為何要推算七政的位置?顯然不是為了農業。如果是指導農事,二十四節氣足夠了,金木水火土關乎的是國家和君王的大運。也就是說,中國古代數理天文學九成以上是為星占服務的。比如日食被認為是上天對帝王之警告,必須事先精確預報,以便在日食發生時舉行盛大禳祈儀式,向上天謝罪;又如火星在恆星背景中之位置,經常被認為具有險惡不祥之星占學意義,星占學家必須事先推算火星運行位置。


《尚書·胤征》中有「羲和屍厥官,罔聞知,昏迷於天象,以干先王之誅」的記載。有西方學者解讀為:中國古代的天文學家羲和,因為酗酒,未能及時預報一次日食,就受到了死刑的懲罰,從此以後中國的天文學家再也不敢玩忽職守了,所以中國人留下了如此豐富的天象記載。江曉原說這段有點「戲說」色彩的解讀,大體還是正確的。


歐洲人制訂了為清朝所用的《崇禎曆書》



崇禎曆書起初並未頒行天下,待到爭論結束,明已亡國。


有清一代,最有意思的是欽天監的監正都是外國傳教士,而清順治初年開始使用的《西洋新法曆書》更是脫胎於明末徐光啟主持編纂的《崇禎曆書》。徐光啟本人沒有看到曆書出版即病逝,而崇禎帝因大臣反對長達十年不得頒行新曆,待他最終決定要頒行時,李自成攻破北京,崇禎帝自縊於煤山。



湯若望


江曉原說,湯若望是個在政治上十分「靈巧」的人,在他的傳教士同伴們大多跟隨明王朝南遷時,他卻在家裡靜心編書。他將《崇禎曆書》上有關明王朝的內容刪除,增加了許多自己寫的短文章。文章字數總量占篇幅並不大,但是在目錄中卻體現得很多。清攝政王多爾袞輔佐順治定鼎,正需要改歷布新,以期天下奉其為正朔。妙就妙在《崇禎曆書》並沒有頒行過,技術上說完全是新的。湯若望的獻曆書之舉就十分順暢了。


江曉原介紹說,16世紀末,耶穌會傳教士開始進入中國,1582年利瑪竇(Matteo Ricci,1552-1610)到達中國澳門,經過多年活動和許多挫折以及與中國各界人士的廣泛接觸之後,利氏找到了當時在中國順利展開傳教活動的有效方式——即所謂「學術傳教」。1601年他獲准進北京朝見萬曆帝,並被允許居留京師。利瑪竇入居京師之時,適逢明代官方曆法《大統歷》誤差積累日益嚴重,預報天象屢次失誤,改歷之議已持續多年。利瑪竇了解這一情況之後,很快作出了參與改歷工作的嘗試,他在向萬曆帝「貢獻方物」的表文中特別提出,他可以幫助中國修訂曆法,不過他這番自薦未被理會。


1629年,欽天監官員用傳統方法推算日食又一次失誤,崇禎帝下令設立「歷局」,由徐光啟領導,修撰新曆。徐光啟先後召請耶穌會士龍華民(Niccolo Longobardo,1565-1655)、鄧玉函(Johann Terrenz Schreck,1576-1630)、湯若望(Johann Adam Schall von Bell,1592-1666)和羅雅谷(Jacobus Rho,1592-1638)四人參與歷局工作,於1629-1634年間編撰成著名的《崇禎曆書》,它被譽為「歐洲古典天文學百科全書」,成為此後中國王朝官方天學的理論基礎,此後中國學者學習天文的主流教材皆源出於此。實際上絕大部分工作出於湯、羅二人之手。


改歷主要偏重於歷算方面的修正。而曆法本質內容的修改並不多。


農曆中的陽曆成分和陰曆成分


徐光啟主持的《崇禎曆書》,完全採用當時歐洲的天文學方法。我們現在使用的農曆,由紫金山天文台編算,其歷算採用現代天文學的方法。



農曆用的是西方演算法


現行農曆是陰陽合曆,涉及農時的部分的是陽曆的二十四節氣。農曆的歷年長度是以回歸年為準的,但一個回歸年比12個朔望月的日數多,而比13個朔望月短,古代天文學家在編製農曆時,為使一個月中任何一天都含有月相的意義,即初一是無月的夜晚,十五左右都是圓月,就以朔望月為主,同時兼顧季節時令。


漢代太初之前,閏月安排在年末。漢太初曆開始,實施十九年七閏制(即在農曆的十九年中,有十二個平年,每一平年十二個月;有七個閏年,每一閏年十三個月),並採用「平氣(假定了太陽的周年視運動是勻速的,所以二十四節氣時間長度相等)平朔無中置閏法」,閏月不再強制安排在年末。漢之後,星曆家發現十九年七閏有時與天象不符,不夠精密,所以有時置閏並不完全按十九年七閏來安排的。


為什麼採取「十九年七閏」的方法呢?一個朔望月平均是29.5306日,一個回歸年有12.368個朔望月,0.368小數部分的漸進分數是1/2、1/3、3/8、4/11、7/19、46/125,即每二年加一個閏月,或每三年加一個閏月,或每八年加三個閏月……經過推算,十九年加七個閏月比較合適。因為十九個回歸年=6939.6018日,而十九個農曆年(加七個閏月後)共有235個朔望月,等於6939.6910日,這樣二者就差不多了。


在十九個回歸年中有228個節氣和228個中氣,而農曆十九年有235個朔望月,顯然有七個月沒有節氣和七個月沒有中氣,這樣把沒有中氣的月份定為閏月,也就很自然了。


南北朝時祖沖之的《大明曆》,採用三百九十一年一百四十四閏制,相對十九年七閏要精密一些。從唐朝的《麟德歷》開始,採用平氣定朔無中置閏法。唐朝一行的《大衍曆》,用定氣法(即考慮了太陽周年視運動的不均勻性)進行歷算以提高歷算精度,但編製民用歷譜時,仍用平氣法。


告訴你演算法,人人都能編曆書


網路上曾經有一個傳言,說海峽兩岸農曆的定朔不同,導致2033年後有兩年會差一天,直到2035年中才會恢復統一。還有一種傳言是現行農曆只編製到2050年,2050年之後的農曆將會出現兩岸的偏差。江曉原斥之為「流言」。他說,「只要告訴你演算法,人人都能夠編曆書。」


紫金山天文台每年都會頒布年度版《中國天文曆法》,比如今年的2015年,非常厚,定價達200多元。普通民眾如果是過日子根本沒有必要去買,但是如果是想算公曆和農曆的專業人士和愛好者,則可以翻翻這本小百科全書,很多計算月份牌的數據基礎來源於此。


比如2015年版的《中國天文曆法》的目錄就包含:序言、天文常數、行星軌道根數、日曆、節氣、太陽、世界時和恆星時、太陽直角坐標、太陽球面位置、日出日沒、晨昏蒙影、月亮、月亮(黃經黃緯)等等內容。


詳細如天文常數一節,有大家熟悉的光速c=299792.458×10(3次方)米/秒;也有不熟悉的高斯引力常數k=0.01720209895、地球自轉角、地球自轉角變化率、引力常數G、日心引力常數GS。地球赤道半徑6378136.6米、地球平均自轉角速度ω=7.292115×10(-5次方)弧度/秒、月亮與地球質量比μ=0.0123000371、一天文單位的長度au=1.49597870700×10(11次方)米、一天文單位的光行時間τA=499.00478384秒。平黃赤交角(標準曆元J2000.0)ε=23°26′21″.406、太陽視差π=8″.794143、太陽質量S=GS/G=1.9884×10(30次方)千克……


以上種種,讓人「不明覺厲」,更別說讓普通人編製曆書了。


江曉原透露,去年紫金山天文枱曆書編纂室想公布曆書編製規範行業標準,來徵求他的意見,他的意見是:行業標準在紫金山天文台手中就行了,根本無須公布,因為沒有必要授權他人來編算曆書。更重要的是,根據同樣的數據和演算法,做出來的結果應該是一樣的,又何必多此一舉?萬一有人算錯了,反而徒增麻煩。


江曉原反問道,製造農曆只算到2050年流言的人,難道認為公曆不需要計算,天然地存在么?實際上公曆同樣需要計算安排,只不過這是一種陽曆,計算方法比較簡單,而中國的農曆是陰陽合曆,計算比較複雜一些而已。

2015.3.25 文匯學人


推薦閱讀:

黃帝生評介紹
黃帝內經解秘:中醫腎的本質
軒轅黃帝四季詩 對照一下哪一首屬於你的詩
寶寶美學課系列八 | 黃帝戰蚩尤
軒轅黃帝*

TAG:演算法 | 黃帝 | 知道 | 算法 | 必要 |