璇璣:中國古代曆法漫談

  璇璣:中國古代曆法漫談(精華版)      璇璣是活躍在國學論壇、先秦史論壇等學術壇,後主持杏壇的天文名家,這是其最新修訂版。  璇璣原導言:  喜歡古代史的,大概總要涉及到古代曆法。研究漢以後歷史的,好在有各種的工具書,只要查一下就可得到結果。而研究先秦史的,由於年代不清楚,大概對曆法需要有更多的理解。這就發展出了「年代學」這門學問。  其實,曆法並不神秘。只是需要很多的「數學」,特別是要學會加減乘除。另外,還有很多的「學問」,也就是一大堆名詞。如果能突破這兩點,曆法就是囊中之物了。  本客近來突發奇想,試借貴網一塊寶地,聊聊關於曆法的事情。歡迎各位多丟些板磚之類,雞蛋西紅柿更是歡迎,至少晚餐是有菜了。只是本客性本懶散,只好是以「漫談」來定義。  內容提要:    曆法漫談01:日子  曆法漫談02:月子  曆法漫談03:年歲  曆法漫談04:曆法的基本要素  曆法漫談05:公曆  曆法漫談06:干支歷  曆法漫談07:公曆轉換為干支歷  曆法漫談08:節氣  曆法漫談09:農曆  曆法漫談10:干支紀月  曆法漫談11:古代曆法  曆法漫談12:四分曆  曆法漫談13:十九年七閏  曆法漫談14:「推步」與「觀象」  曆法漫談15:「觀象授時」  曆法漫談16:「參歷」與「火歷」  曆法漫談17:二十八宿  曆法漫談18:「斗綱建月」  曆法漫談19:「歲星」與「太歲」  曆法漫談20:天文年代學  曆法漫談21:天狼星周期  曆法漫談22:金星泥版  曆法漫談23:夏商周斷代 樓主發言:1次 發圖:0張 二維碼 | 分享 | 分享 | 收藏 | 更多 | 樓主 更多 | 樓主 回復 樓主:成康之治 時間:2011-05-30 00:12:00   曆法漫談1:日子    一日的定義就是過一個白天、再過一個夜晚。這就涉及如何定義一天的開始。遠古時人們習慣於「日出而作,日沒而息」的生活,自然以即將日出時(即「平旦」)來作為新的一天的開始。在不知道時間的時代,「雞鳴三號」也可以告訴人們新的一天來了。然而,夏日天長,冬日天短,無論是「平旦」還是「雞鳴」來定義新的一天的開始,就會使得每天的日長都不一樣。  據說黃帝發明了漏壺,定義了時刻,有了十二時辰,就可以用「夜半子時」來定義一日的開始。也可以用寅時(3-5時)來模仿「雞鳴」的定義。而幾千年以後夜半(0時)就成了全世界通用的標準。但在「儒略日」的定義里,是以中午(12時)來定義一日的開始,這大概是為了方便天文學家的工作。  過日子就是一天天數著過。如何數日子就是曆法的內容了,這叫「紀日法」。最短的是用七日一星期來數,四個星期為28天(與28宿有關?)。其次是按月來數,一個月有28天、29天、30天、31天等等。在古代中國,還有「干支紀日」,用六十甲子來數日子,六十天一個周期。最長的則是「儒略日」,它沒有循環周期,從儒略曆的公元前4713年1月1日格林尼治平午(即該地民用時12時)為「0」日的開始,至次日格林尼治平午為「1」日的開始,由此順數而下,延續不斷地記下來。例如:2005年1月1日格林尼治平午,儒略日為2453372。    曆法漫談2:月子    「人有悲歡離合,月有陰晴圓缺,此事古難全。」古人無事時看看月亮,從黃昏掛在西邊天上的彎彎的新月,到半個月亮的上弦月,到圓圓的滿月,再到下弦月,到清晨東邊天上的一彎殘月,還有看不見月亮的時候。這個過程是周而復始的,一個周期是29天或30天。於是古人就有了「月」的概念。象「坐月子」、「月信」等都與這個「月」有關。  在曆法中,關於月的定義,就涉及到每月的開始、每個月有幾天、如何數月份等問題。  遠古時,人們是以第一次見到新月為一個月的開始,稱為「胐」。今天的伊斯蘭曆法仍是以新月為每月的開始。但是,隨著古人認識的提高,就提出了「朔」的概念,即日月相合時為「朔」,而日月相對則為「望」。在中國古代,是以朔日為每月的開始。這樣,每個月就有29天或30天。  在朔日是看不到月亮的,每個月會有一兩天看不到月亮。那麼古人如何確定那一天是朔日?一是比較朔日前後能看見的殘月和新月形狀來推算。另外則是在一個地方平均幾年發生一次的日食提供了檢驗朔日的方法,日食必須發生在朔日。而平均每年都有的月食則必須發生在望日。因此,古人應該是對日月食有了一定的認識之後,才有朔的概念。  至於數月份的問題,則與「年」的定義有關。    曆法漫談3:年歲    俗話說「年歲不饒人」,也就是說一年一年過得很快。古人很早就發現了四季的變化。夏天酷熱、冬天寒冷、春日溫煦、秋日高爽,漁獵時代的人們是深有體會的。「離離原上草,一歲一枯榮,野火燒不盡,春風吹又生。」春生、夏長、秋收、冬藏,是農耕時代的體會。這種周期性的四季變化就使古人產生了「年歲」的概念。  在曆法中,需要定義一年有多少天,一年有幾個月,每年開始於何時,如何數年頭(即「紀年法」)等等。  先說如何數年頭的問題。現在的公曆是用公元紀年的,以假定的耶穌誕生之年為公元1年,今年為公元2005年。我國在數千年里,是用帝王年號來紀年的,如元封七年,萬曆十五年等。  還有一種干支紀年法,用六十甲子來數年頭,六十年一個周期,比如今年為乙酉年。  每年的開始必然是某月1日,而哪個月就是曆法中的「年首」問題,也就是「建正」。中國古代有「建寅」、「建子」、「建丑」等不同的定義。  在中國古代曆法里,一歲為365天或366天,一年有12或13個月。也就是「年」和「歲」是有不同含義的。一歲的準確天數(如365.2422)在古代被稱之為「歲實」。但後來人們就將「年」和「歲」混用了。    曆法漫談4:曆法的基本要素    曆法就是規定年、月、日這三個基本要素,只要將年月日作出定義以及判斷或推算的方法,就是一套完整的曆法。其中,年和月的配合最為重要。  目前常見的曆法有三類,即陽曆、陰曆、陰陽曆。  陽曆是以一年有365天或366天來定義的,「平年」為365天,「閏年」為366天,而哪年是閏年則是由「閏法」來規定的。然後再定義一年有幾個月,每月有多少天。比如「十月曆」,一年十個月,每月36天,這樣10個月有360天,剩下的五六天用來「過新年」。  陰曆是按月亮的圓缺來定義的,這樣一個月有29天或30天。再定義一年為12個月,這樣一年有350多天,不到360天。象伊斯蘭的曆法就是如此。  陰陽曆則是年按陽曆之年定義、月按陰曆之月定義。比如,我國古代大部分曆法就規定:一歲為365天或366天,一年有12或13個月,每月有29天(小月)或30天(大月)。平年裡一年為12個月,閏年裡一年有13個月,其中一個月為「閏月」。收藏 | 1樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:14:00   曆法漫談5:公曆    公曆是國際上通用的曆法,在研究古代年代時,一般均使用公曆來作為參照系。  公曆中定義的每月中的天數為:1、3、5、7、8、10、12月為31日,4、6、9、11月為30日,平年時2月為28天,閏年時2月為29天。這樣平年有365日,閏年有366日。這些規定是人為的,主要是西方古代帝王們乾的好事。紀日法就稱X月X日。  公曆中的紀年法稱公元XX年,如今年為公元2005年。上溯到起點,是公元1年。再往前,是公元前1年,公元前2年等等。其中沒有公元0年的說法,這也是上世紀末爭論「新千年從哪年開始」的原因。  有時為了方便,將「公元」二字省掉。有時為了計算,就將公元前的年代用負號表示。但有個約定,將公元前1年記為0年,公元前2年記為-1年,公元前2070年記為-2069年。可以看出,將負號的年代轉換為公元前年代,數字上有1年的差別。  在1582年10月4日以前,公曆是按儒略曆的閏法,即「四年一閏」,只要年數能被4整除就是閏年(2月有29日),否則為平年(2月只有28日)。如公元1004年的「1004」能被4整除,為閏年,該年有2月29日。而公元1006年的「1006」不能被4整除,不是閏年,只有2月28日,沒有2月29日。但對公元前的年代則一定要轉為負號年代,才能按上述規則計算。比如,將公元前1年轉為0年,「0」能被4整除,是閏年。如公元前1045年轉為-1044年,是閏年。而公元前1044年就不是閏年。  儒略曆是公元前46年羅馬統治者儒略凱撒大帝制定的,按儒略曆的閏法,一年有365又1/4日(365.25日)。但公曆將儒略曆的閏法一直往前延伸到公元前任何年代。  在1582年10月15日以後,公曆是按格里曆的閏法,除了類似儒略曆的「四年一閏」(只要年數能被4整除就是閏年,否則為平年)以外,還規定每逢整百的年數,則需要能被400整除方為閏年。例如,公元1900年的「1900」雖能被4整除,但不能被400整除,因此不是閏年。而2000年能被400整除,才是閏年。這樣,格里曆的閏法是400年中有97個閏年,相當於一年有365又97/400日(365.2425日)。  注意,按公曆定義,1582年10月4日之後就是1582年10月15日。也就是沒有1582年的10月5-14日這十天。這是羅馬教皇格里高利十三世在1582年乾的事情。    曆法漫談6:干支歷    在古代中國,也有十分簡單的曆法,這就是「干支歷」。傳說伏羲造《甲歷》,可能與干支歷有些淵源。當然,學者們更多提的是「干支紀日」和「干支紀年」。  干支是由十天乾和十二地支組成的。十天干為:甲0、乙1、丙2、丁3、戊4、已5、庚6、辛7、壬8、癸9,其中的數字是用於後邊作計算用用的。十二地支為:子(鼠)0、丑(牛)1、寅(虎)2、卯(兔)3、辰(龍)4、巳(蛇)5、午(馬)6、未(羊)7、申(猴)8、酉(雞)9、戌(狗)10、亥(豬)11,其中括弧內是「十二屬相」或「十二獸」,傳說黃帝為讓人們記住十二地支,就用十二獸來幫助記憶,而數字也是為了計算而給的編號。  由十天乾和十二地支進行配對,就可排出60個不同的組合,稱為「六十甲子」,其順序為:, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9  0, 甲子, 乙丑, 丙寅, 丁卯, 戊辰, 已巳, 庚午, 辛未, 壬申, 癸酉  1, 甲戌, 乙亥, 丙子, 丁丑, 戊寅, 已卯, 庚辰, 辛巳, 壬午, 癸未  2, 甲申, 乙酉, 丙戌, 丁亥, 戊子, 己丑, 庚寅, 辛卯, 壬辰, 癸巳  3, 甲午, 乙未, 丙申, 丁酉, 戊戌, 已亥, 庚子, 辛丑, 壬寅, 癸卯  4, 甲辰, 乙巳, 丙午, 丁未, 戊申, 已酉, 庚戌, 辛亥, 壬子, 癸丑  5, 甲寅, 乙卯, 丙辰, 丁巳, 戊午, 已未, 庚申, 辛酉, 壬戌, 癸亥  為了計算方便,常使用數字編號,取甲子為0,乙丑為1…癸酉為9,甲戍為10…壬戍58,癸亥59。  在干支歷中,最主要的是干支紀年和干支紀日。是從某甲子年或某甲子日開始,按六十甲子往下數,過六十年或六十日後就又從甲子開始。  而每年十二個月和每日十二時辰,它們的地支均是固定的。但它們的天干則分別與年乾和日干有關,具體的對應方法以後再談。比如,今年春節的凌晨子時,公曆2005年2月9日0時,相應的干支歷記為:乙酉年戊寅月甲子日甲子時。干支歷其實就是民間的「八字」或「四柱」。    曆法漫談7:公曆轉換為干支歷    先看年干支的計算。在y年,如2005年則是y=2005;而公元前的年代要轉為負號年代,如公元前2070年則為y=-2069。計算a值:a=y-4;再計算gz值:gz=a-[a/60]*60,其中[ ]表明是取整運算,如[8.75]=8。如果gz值為負,則gz=gz+60,使其為正值。這個gz值就是前面六十甲子的編號。例如,對2005年,y=2005,a=2001,a/60=33.35,[a/60]=33,gz=21,而21就是乙酉,說明2005年是乙酉年。對公元前2070年,y= -2069,a= -2073,a/60= -34.55,[a/60]= -34,gz= -33,gz= -33+60=27,則前2070年為辛卯年。  也可以從a值分別計算年天干或年地支。天干值為:g=a-[a/10]*10,若g是負數則g=g+10。地支值為:z=a-[a/12]*12,若z是負數則z=z+12。例如,公元前2070年,a= -2073,g = -3,g=7,z= -9,z=3。g值為7對應天乾的「辛」,z值為3對應地支的「卯」,因此前2070年為辛卯年。  再看日干支的計算,主要是先將公曆日期轉換為儒略日,再由儒略日來計算日干支。因為儒略日是以正午開始新的一天,我們不妨約定某日的儒略日是對應於該日正午的。而計算儒略日的方法有很多種,這裡只選一種適於編程的方法(括弧內的是舉例):  1)對於y年m月d日。(如2005年2月9日12時,則y = 2005,m = 2,d=9)  2)如果是1月和2月(m=1和m=2)則:m=m+12,y=y-1。(因m=2,則m=14,y=2004)  3)計算a值:a=[30.6001*(m+1)] 。(a=[30.6001*(14+1)]=[459.0015]=459)  4)計算b值:在1582年10月4日以前(含),b=0;在1582年10月15日以後(含),b=2-[y/100]+[y/400]。(因在1582年之後,b=2-[2004/100]+[2004/400]=2-20+5= -13)  5)計算c值:如果y=0,c=[365.25*y]-694025。(因y>0,c=[365.25*2004]-694025=731961-694025=37936)  6)計算約化儒略日mjd值(以1900年1月0.5日起算的天數):mjd=a+b+c+d。(mjd=459-13+37936+9=38391)  7)計算儒略日jd值: jd=mjd+2415020。(jd=38391+2415020=2453411)  從舉例來看,2005年2月9日12時的儒略日為2453411,或略去12時而稱2005年2月9日的儒略日為2453411。在計算儒略日時,對於公元前的年代,同樣要注意先將其轉為負號年代。  而將儒略日轉換為日干支就非常簡單了。對於儒略日jd值,計算ad值:ad=jd-11;再計算gz值:gz=ad-[ad/60]*60,這就是干支編號。例如儒略日為2453411,則ad=2453400,gz=0,對應干支為甲子,表明該日為甲子日。也可以從ad值分別計算日天干或日地支。天干值為:g=ad-[ad/10]*10,地支值為:z=ad-[ad/12]*12。  順便提一句,用儒略日來計算星期幾也很容易。對於儒略日jd值,計算ax值,ax=jd+1;再計算xq值:xq=ax-[ax/7]*7,xq值為0時是星期日,其餘的值是幾就是星期幾。如2005年2月9日的儒略日為2453411,ax=2453412,xq=3,則該日為星期三。收藏 | 2樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:17:00   曆法漫談8:節氣    在遠古時期,人們體會著一年四季的變化,也發現不同的季節有不同的天象。最簡單的是,冬季太陽很低,而天短;夏季太陽很高,而天長;春秋兩季則居中,日夜長度相等。  單從午間太陽影子的長度,就可判斷四季,這就有了成語「立竿見影」。古人在地上栽個竿子,每天在午時(即太陽影子落在南北線上)觀測一下影子的長度,做個記號。很容易就發現在冬季的某日,影子最長,這天被稱為「冬至」或「日南至」;而在夏季的某日,影子最短,這天被稱為「夏至」或「日北至」。而在春秋兩季各有一日,日出或日落時太陽影子落在東西線上,這就是「春分」和「秋分」。  順便說一下,古人如何確定南北線(子午線)和東西線(卯酉線)。只要將竿子立直了(鬆手掉個石頭就知道竿子直不直),在白天認真盯著竿子的影子,隨著太陽的運動,影子先逐漸變短,然後再逐漸變長。由此確定出影子最短的一點,這就是「北點」,其時對應於「正午」。而竿子插地點為「南點」,兩點的連線就是南北線。而日出時的影子為「西點」,日落時影子為「東點」,兩點的連線為東西線。  春分、夏至、秋分和冬至分別是四季的中點,這應該是人們最早知道的四個節氣。西方人大概到今天也只知道這四個。而我們的古人還要尋找四季的起點,即立春、立夏、立秋和立冬這「四立」,這就需要天上的星空來幫助了。  有了這八個節氣,四季應該是可以定下來了。然而,一年有十二個月,如何把八個節氣排到12個月就成了問題。於是古人又把節氣擴大到二十四節氣,這就是我們今天所熟知的。後來,又將其擴展為七十二候。這也是「氣候」這個詞的來歷。    曆法漫談9:農曆    我國現行農曆的定義是:定朔、定氣、建寅、無中氣置閏。  「定朔」是指「朔」的時刻由太陽的黃經和月亮的黃經相等來定義。朔日就是當月的初一。  「定氣」是根據太陽的黃經來定義二十四節氣的時刻:春分為太陽黃經0度,每隔15度為一個節氣。例如,夏至為太陽黃經90度,秋分為180度,冬至為270度;立春為315度,立夏為45度,立秋為135度,立冬為225度,等等。  二十四節氣實際上分為「節」和「氣」,「氣」又叫「中氣」。農曆的月份與中氣有固定的關係。含有冬至的為子月,有大寒的為丑月,雨水為寅月,春分為卯月,穀雨為辰月,小滿為巳月,夏至為午月,大暑為未月,處暑為申月,秋分為酉月,霜降為戌月,小雪為亥月。  農曆「建寅」是指以寅月為正月,卯月為二月,依此類推,子月為十一月,丑月為十二月。而「無中氣置閏」是指若農曆某月里不含任何中氣,則為閏月,名稱為前一個月加「閏」字。例如某年八月(含秋分的酉月)後的一個月里不含中氣「霜降」,則為閏月,稱「閏八月」;再後的一個月里有中氣「霜降」,方為「九月」。  依據農曆的規則,只要知道各年裡朔和中氣的時刻,就可排出當年的公曆和農曆的對照表來。然而,由於日月運動的不規則性,特別是月亮的運動更為複雜。因此,朔與節氣的時刻均需要由天文學計算來給出。在國際上,以前對日月運動是使用理論公式計算;從1984年起,各國使用美國噴氣推進實驗室和海軍天文台計算的DE200/LE200星曆表(1960-2025AD)來計算,我國曆法的權威單位中科院紫金山天文台就以此編製年曆。以後,美國噴氣推進實驗室又計算出了DE404/406星曆表(3000BC—3000AD),時間跨度為6000年。(這些表見http://ssd.jpl.nasa.gov/eph_info.html)最近,瑞士人又將其擴展到5400BC-5400AD,稱為「瑞士星曆表」(見http://www.astro.com/swisseph/),時間跨度為10800年,可以真正算出「萬年曆」了。  當然,從這些星曆表來計算出朔和節氣的時刻是需要一些專業知識和編程能力的。而最簡單的是利用現成的朔和節氣的表格,比如張培瑜的《三千五百年曆日天象》等工具書。本客就用依據「瑞士星曆表」而計算出來的表。收藏 | 3樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:18:00   曆法漫談10:干支紀月    前面講過如何將公曆的年和日轉換為年干支和日干支,現在說說如何確定月干支和時干支。  先說時干支。古人將一日分為十二時辰,23-1時為子時,1-3時為丑時,3-5時為寅時…,11-13時為午時…,21-23時為亥時。因此時辰的地支是固定的,其天干則與日的天干有關。因為干支有60個,一日有12時辰,這樣六十甲子就可排出5日的時辰來。時干支的起點就是「甲日子時」,其時為甲子時;甲日丑時為乙丑時,依此類推。到第二天「乙日子時」為丙子時,等等。五天將六十甲子排完,就又開始了新的一輪。到第六天子時,是「己日子時」,又是甲子時。為了方便,可以使用如下的對照表,第一行為日干,第一列為時支。  日, 甲己, 乙庚, 丙辛, 丁壬, 戊癸   子, 甲子, 丙子, 戊子, 庚子, 壬子  丑, 乙丑, 丁丑, 己丑, 辛丑, 癸丑   寅, 丙寅, 戊寅, 庚寅, 壬寅, 甲寅   卯, 丁卯, 己卯, 辛卯, 癸卯, 乙卯  辰, 戊辰, 庚辰, 壬辰, 甲辰, 丙辰  巳, 己巳, 辛巳, 癸巳, 乙巳, 丁巳  午, 庚午, 壬午, 甲午, 丙午, 戊午   未, 辛未, 癸未, 乙未, 丁未, 己未   申, 壬申, 甲申, 丙申, 戊申, 庚申   酉, 癸酉, 乙酉, 丁酉, 己酉, 辛酉  戌, 甲戌, 丙戌, 戊戌, 庚戌, 壬戌   亥, 乙亥, 丁亥, 己亥, 辛亥, 癸亥  而確定月干支與時干支是相似的方法,因為月的地支也是固定的,故其天干就與年干相關。五年排一輪月干支,見如下的對照表,第一行為年干,第一列為月支。  年干, 甲己, 乙庚, 丙辛, 丁壬, 戊癸  正月, 丙寅, 戊寅, 庚寅, 壬寅, 甲寅   二月, 丁卯, 己卯, 辛卯, 癸卯, 乙卯   三月, 戊辰, 庚辰, 壬辰, 甲辰, 丙辰   四月, 己巳, 辛巳, 癸巳, 乙巳, 丁巳   五月, 庚午, 壬午, 甲午, 丙午, 戊午  六月, 辛未, 癸未, 乙未, 丁未, 己未  七月, 壬申, 甲申, 丙申, 戊申, 庚申   八月, 癸酉, 乙酉, 丁酉, 己酉, 辛酉  九月, 甲戌, 丙戌, 戊戌, 庚戌, 壬戌   十月, 乙亥, 丁亥, 己亥, 辛亥, 癸亥  冬月, 丙子, 戊子, 庚子, 壬子, 甲子  臘月, 丁丑, 己丑, 辛丑, 癸丑, 乙丑  其實,古代人提出「干支歷」時,應該用的是「建子」,即以子月為一年的開始。因為從上表可以看出,在甲子年時,寅月的干支為丙寅,往前推兩個月為子月,其月干支為甲子。若按「建寅」,即以寅月為一年的開始,則兩個月前的子月是屬於前一年的,即癸亥年。但若是「建子」,則寅月前的子月仍屬甲子年,這就是甲子年甲子月。如果還是甲子日,則子時所對應的為「甲子年甲子月甲子日甲子時」,這應該是「干支歷」的起點。  需要注意的是,在干支紀月時,是不考慮閏月的。遇上閏月怎麼辦,沒人說過。也許可以用前月的干支再加上「閏」字。例如,某年八月是辛酉月,之後有閏八月,可稱為「閏辛酉月」,再後的九月繼續為壬戍月。  還有個辦法,就是使用純陽曆的方法,定義寅月開始於立春,卯月開始於驚蟄,等等。這就是北宋沈括提議的,清末太平天國實行過的,而最近章潛五教授鼓吹「春節定於立春」的曆法。然而,這種曆法雖然避開了閏月的問題,卻也把月亮的「陰晴圓缺」給丟掉了。    曆法漫談11:古代曆法    現代農曆是與我國古代曆法一脈相承的。作為曆法的定義,主要有朔和節氣的計算、建正和置閏法等。  在朔和節氣方面,中古以來直到現代使用「定朔」和「定氣」,其方法已在前面說過。而在上古時期,則用的是「平朔」和「平氣」。所謂「平朔」,是指知道朔望月的天數,即一個陰曆月的天數,如29.5306日,從某一個朔時開始,每隔29.5306日為一個朔,從而排出一系列的朔日來。所謂「平氣」,是指知道回歸年的天數,即一個陽曆年有多少天,也即「歲實」,如365.2422日,將其等分為24份,每份為365.2422÷24=15.218425日,從某個冬至開始,每15.218425日為一個節氣,從而排出24節氣的日期來。當然,利用「平朔」或「平氣」的方法,就需要知道第一個朔是在什麼時刻,或第一個冬至是在什麼時刻,這就必須通過實際的天文觀測來確定了。這也與所謂的曆法「上元」有關係。  「建正」是指每年開始於那個月。古代有「建子」、「建丑」和「建寅」等不同的方法,分別是以子月、丑月和寅月為一年之始。  「置閏法」是指如何設置閏月,比如「無中氣置閏」。在上古時期,還有「年末置閏」,即在閏年時,將閏月放置在年末,稱為「十三月」。而閏年的確定,有「三年一閏」、「五年二閏」、「十九年七閏」等方法。  因此,要了解某個古代曆法的情況,只要能夠知道上述的有關信息,就可以排出相關的歷譜來,並可以給出古代歷譜與公曆的對應關係。收藏 | 4樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:19:00   曆法漫談12:四分曆    在上古時期,一直流傳著「古六歷」的說法,即《黃帝歷》、《顓頊歷》、《夏曆》、《殷歷》、《周曆》和《魯歷》。這些曆法都屬於「四分曆」的系統。  「四分曆」的基本數據為:回歸年為365又1/4日(365.25日,這與西方儒略曆的參數是一樣的),設置閏年的方法為「19年7閏」。根據這兩個數據,就可推出朔望月的長度為29又499/940日(29.53085日,=365.25×19÷(19×12+7))。再依據前述的「平朔」和「平氣」的方法,就可推算出歷譜來。  在「四分曆」系統中,19年為一「章」,共235個月(=19×12+7),各章中所對應的年月所含日數都是相同的,但不是整數,這是因為有1/4(即「四分」)的問題。如此,「四章」76年(=4×19)為一「蔀」,則不同「蔀」中相應的年月日就全同了。但對應的日干支並不相同,為此則需要「二十蔀」1520年,叫做「一紀」,則不同紀中相應的日干支就一樣了。但相應的年干支還不相同,就需要「三紀」4560年,叫「一元」,如此則相應的年月日干支和日數就全同了。這就是「一元復始」的來歷。「一元」有60「蔀」,因此常稱某「蔀」的第一年的干支為「蔀首」,如「甲子蔀首」等。而一元有3紀,分別稱為「天紀」、「地紀」、「人紀」。  然而,「四分曆」的參數是有誤差的。如回歸年長度(365.25日)與現代值365.24220相差11分14秒,則每過128年節氣將差一日。而朔望月長度(29.53085日)與現代值29.53059相差22.5秒,則每過310年朔或望將差一日。如果真是過了「一元」4560年,則陽曆的日子(如節氣)將相差35.6日,陰曆的日子(如朔望)相差14.7日,人們就看到節氣差一個多月,而朔成瞭望、望成了朔。其實古人早就發現了這個問題,《春秋保乾圖》曰:「三百年斗歷改憲。」說明古人差不多三百年就需要改一次曆法。  因此,各個古代的四分曆,都是在發現曆法「失天」後,重新設定曆法的起點以「合天」。古六歷之間的差別實際是根據觀測來調整曆法的起點,這樣就出現了不同的「上元」。據《開元占經》卷一百四載,古六歷上元年距唐玄宗開元二年甲寅(714AD)的紀年數分別為:《黃帝歷》上元辛卯以來2760863年——其第606元天紀甲子蔀首距開元二年為2063年,即公元前1350年;《顓頊歷》上元乙卯以來2761019年——其第606元天紀己巳蔀首距開元二年為2219年,即公元前1506年;《夏曆》上元乙丑以來2760589年——其第606元天紀甲子蔀首距開元二年為1789年,即公元前1076年;《殷歷》上元甲寅以來2761080年——其第606元天紀甲子蔀首距開元二年為2280年,即公元前1567年;《周曆》上元丁巳以來2761137年——其第606元天紀甲子蔀首距開元二年為2337年,即公元前1624年;《魯歷》上元庚子以來2761334年——其第606元天紀甲子蔀首距開元二年為2534年,即公元前1821年,亦即公元前301年為地紀甲子蔀首。  只要知道曆法的起點,以及「建正」和「置閏」等問題,就可以排歷譜了。更詳細的請看七秩齡童等在「先秦網」和「國學網」上的系列帖子,或參看劉洪濤的《古代曆法計演算法》(南開大學出版社,2003)。    曆法漫談13:十九年七閏    如果是使用「無中氣置閏法」,只要排一排節氣和朔日就能夠確定閏月。在使用「定朔」和「定氣」的情況下(如農曆),根本就不用關心「多少年一閏」的問題。但在上古時期,人們將「十九年七閏」作為非常重要的曆法規則,例如「古六歷」就是如此。但到中古以後,就逐漸放棄了這個規則。  上古時期,還有的曆法是採用「年末置閏」,將閏月作為「十三月」。而這就需要確定哪一年為閏年。在「十九年七閏」的規則下,一般將閏月安排在第3、5、8、11、14、16、19年,其中相隔的年數分別為3、2、3、3、3、2、3年。當然還可以使用其他的安排方法。  一般認為「十九年七閏」的規則是到春秋時才確立的。然而,《史記》等史書記載:「黃帝得寶鼎宛朐,問於鬼臾區。區對曰:『帝得寶鼎神策,是歲己酉朔旦冬至,得天之紀,終而復始。』於是黃帝迎日推策,後率二十歲得朔旦冬至,凡二十推,三百八十年,黃帝仙登於天。」這段話是說,黃帝得寶鼎之年,冬至是在朔日,他們經過推算知道:過19年後又出現冬至在朔日的情況,推算20次,共380年(=19×20)。而這就說明黃帝時已經知道「十九年七閏」的規律了,否則就不會有相隔19年的兩次「朔旦冬至」。    曆法漫談14:「推步」與「觀象」    「曆法」就是推算「歷」的方法,當然也包括曆法參數和起點等。在古代,曆法又被稱為「推步授時」,即利用一定的方法來推算年月日。官方依據曆法推算出年曆,並向百姓進行頒布,讓人們知道「今夕是何年」。  應該說,每一部曆法的推算方法是簡單的,但曆法的好壞就與其參數和起點很有關係了。而曆法參數和起點則需要天文觀測來確定。而且在古代中國,非常講究曆法與天象的合拍,特別是日月星「三光」要和曆法的年月日是一致的,這就是所謂的「合天」。如果曆法與天象不一致,就是「失天」,比如初一看到了月亮等等,就需要改歷。又,每逢改朝換代之時,新的帝王認為自己是「奉天承運」,更是要改歷。這就是古代中國有近百部曆法的原因。  所以,創立新曆法需要進行天文觀測,檢驗曆法的好壞也需要靠天文觀測。古代稱天文觀測為「觀象」。這樣,「推步」與「觀象」就有了緊密的聯繫。  由於中國古代曆法具有「合天」的特點,這就為我們提供了一種確定年代的辦法。因為現代天文學可以給出從公元前5400年到公元5400年這10800年中任何時刻的精確天象來,如此,即使沒有足夠的曆法資料,利用少量的曆日信息並與當時的天象進行比較就有可能確定其年代。  比如,在「夏商周斷代工程」中占重要地位的「金文歷譜」,就是利用「王年、月份、月相和日干支」四要素來推定年代。又例如,假如干支歷開始於「甲子年甲子月甲子日」,並且是朔日,則有公元423年12月19日、公元前4977年1月18日、以及公元前7137年1月18日和公元前8217年2月17日等日期。收藏 | 5樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:20:00   曆法漫談15:「觀象授時」    關於曆法的問題,大致也就是這些了,剩下的只是一些細節。然而,曆法不是憑空出現的,也有其起源問題,或是「源頭」。這就是曆法出現之前的「觀象授時」階段。古代人極為重視日月星「三光」,就是因為用日月星可以「授時」,也就是用以確定年月日。  正如開頭講的那樣,根據月亮的「陰晴圓缺」可以確定「月」和月中的「日」。即使有了曆法之後,月相也仍然用於紀日法的輔助參考。現在已知西周有60多個「王年、月份、月相和日干支」四要素俱全的金文記載,如《九年衛鼎》「惟九年正月既死霸庚辰」。  金文中常見記錄月相的名詞有:初吉、胐、既生霸、既旁生霸、既望、既死霸、旁死霸。這些名詞究竟對應哪幾天還是正在研究的問題。大概有三類觀點,1)定點說:董作賓先生創為定點月相說,以為一個月只有月初(朔,或死霸、初吉)及月中(望或既生霸)兩個定點,這個定點只有兩天的游移,各稱旁死霸及旁生霸;2)四分說:王國維先生創為四分月相說,以為初吉、既生霸、既望、既死霸各指一個月由月初到月尾的四分之一;3)二系說:由「夏商周斷代工程」所創。由於對月相名詞的解釋不同,便出現了很多版本的西周金文歷譜。  古人最關心的是如何確定年和季節的問題,這對進入農業社會的古人更為重要,因為「人誤地一時、地誤人一年」。確定季節的方法可以有很多種,大致有四類:用物候、用太陽、用星辰、用月亮加星辰。  大概古人最早是用物候來判斷季節的,例如觀察草木的榮枯。這方面發展的頂點就是後來的每隔5天多的「七十二候」,表示一年中物候和氣候的一般變化情況。七十二候可分為兩類:一類是生物物候,其中有動物的,如鴻雁來、寒蟬鳴、蚯蚓出等;也有植物的,如桃始華、萍始生、禾乃登等。另一類是非生物候,如水始冰、雷乃發聲、土潤溽暑等。內容非常廣泛。但是其中也有觀察錯誤、不合乎科學事實的情況,如鷹為鳩、雀入大水為蛤等。七十二候的起源甚早,在《逸周書》中已告完全確立。對農事活動曾起過一定作用。但是,由於候的時間單位較小而氣候的年際及地區差別很大,故難以廣泛應用。  用太陽判斷季節的方法,就是前面提到的「立竿測影」,可以確定冬至、夏至和春分、秋分等節氣,可以測定回歸年(「歲實」)的長度,等等。    曆法漫談16:「參歷」與「火歷」    用「立竿測影」的辦法可以測定四季,但需要觀測者的經驗和時間,因而在遠古時往往是「官方」的任務。還有個簡單的方法,就是看太陽出沒的方位,春分秋分時太陽出沒於正東和正西方,夏至時太陽出沒於東北和西北方,冬至時則是東南和西南方。考古發現的「八角星紋」可能就來源於太陽在四季中出沒的方位,並可能是八卦的起源。  黃昏時仰望天空,不同的季節會看到不一樣的星空,因此利用所看到的星空就可以確定季節。比如在黃昏時看到的星空,有的星星正在西落(「昏沒」或「偕日沒」)、有的星星恰在正南方(「昏中」)、還有的星星剛剛東升(「昏升」);同樣,在黎明時看到的星空,有「晨沒」的星、有「晨中」的星、也有「晨升」或「偕日升」的星。  這種使用星空來確定季節的方法是世界性的。在大洋州、美洲和非洲的土著中,常常使用昴宿、畢宿、參宿或天狼星來確定新的一年的開始。例如,古埃及就以天狼星的偕日升作為新年。在我國遠古時期,應該是萬年以前的漁獵時代,就是用參宿(「三星」)來確定季節的,也可強名之為「參歷」。昴、畢、參宿均屬四象中的「西方白虎」,而天狼星也與之相距很近。在世界範圍使用「白虎」星宿來確定新年或季節,表明這種文化的源頭是同一的,應該是在末次冰期時傳播到全世界的。  在參歷之後,我國遠古的人們又有了「火歷」(火歷的概念是龐朴在80年代提出的),即以心宿的「大火」星來確定季節,遠古時設專門的官員「火正」來做此事。《詩經》講:「七月流火、九月授衣」,也就是在七月的黃昏時看到大心星在西南方落下,就應該準備冬衣了,因為兩個月後就需要穿厚衣服了。心宿屬於四象中的「東方蒼龍」,常見的「二龍戲珠」的「珠」就是大火星,少數民族的「火把節」也與大火星的「南中」有關。  據《左傳?昭公》記載:「昔高辛氏有二子,伯曰閼伯,季曰實沈,居於曠林,不相能也。日尋干戈,以相征討。後帝不臧,遷閼伯於商丘,主辰。商人是因,故辰為商星。遷實沈於大夏,主參。唐人是因,以服事夏商。」反映了商人用「大火」、唐人用「三星」的歷史。  因為有歲差的影響,在不同年代(如差上百年到上千年)的同一季節所看到的「昏中」星是不一樣的,這就是所謂的「歲自為歲、天自為天」。比如,今天的「大火南中」是在公曆7月(農曆6月),而在約1萬年前 「大火南中」是在2月(農曆正月)。因此,利用歲差效應也可粗略地確定年代。象前面《左傳》的記載被稱為「參商不相見」(見杜甫、高適、侯方域等詩),即三星與大火星,此出彼落,從不相見。根據計算,「參商不相見」的年代是在公元前7200年以前。收藏 | 6樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:21:00   曆法漫談17:二十八宿    太陽在星空中的運行軌跡叫黃道,每年太陽沿黃道轉一圈。二十四節氣就是將黃道均分為二十四份。因此,只要知道太陽在黃道上的位置,即「日躔點」,就能確定當時是處在什麼季節。然而由於陽光太強,太陽附近的星空是無法直接看到的,因而只能靠間接的方法來判定太陽位置。前面提到的觀測「偕日生」、「偕日沒」、「昏中」、「晨中」等星就是一種方法。  再者就是使用月亮。在滿月時(「望日」),月亮與太陽正好是相對的(「相衝」),只要看到滿月在什麼星宿附近,太陽就位於再過180度的星宿那邊,就可以確定季節了。然而,一年只有十二三個望日,顯然不夠用,就希望可以用每天的月亮來測定。比如,上弦月和下弦月時太陽和月亮相差90度,亦可根據月亮所在星宿來判定太陽所在的星宿。  月亮在星空中的運行軌跡叫「白道」,運行一周為27.32日。於是古人就在星空中設定了二十八宿,使得每天「月躔一宿」。宿數取28而不是27,應該是考慮宿數是4的倍數,使得月亮與太陽成180度或90度時,太陽和月亮都處在宿中。  二十八宿為:東方蒼龍七宿,角亢氐房心尾箕;北方玄武七宿,鬥牛女虛危室壁;西方白虎七宿,奎婁胃昴畢觜參;南方朱雀七宿,井鬼柳星張翼軫。由於「西方白虎」的昴畢參3宿和「東方蒼龍」的角亢氐房心尾6宿均是很早就用於「觀象授時」了,因而進入二十八宿是很自然的。而其他的各宿是在創立二十八宿體系時加入的,以保證28宿均勻地分布在黃道和赤道附近,並且是兩兩相對。根據這些特點,可以確定二十八宿體系的建立年代為約公元前5800年左右。  但是,由於歲差效應的影響,二十八宿就逐漸變得不那麼均勻了,有的宿間距離拉的很開,而另外有的宿卻靠得很近。這樣,僅靠目測來「授時」就有問題了,就需要依靠象「渾天儀」這樣的儀器了,據說是顓頊發明了渾天儀。    曆法漫談18:「斗綱建月」    《公羊傳昭公十七年》曰:「大辰者何?大火也。大火為大辰,伐為大辰,北辰亦為大辰」。這就是說,古人不但觀測參宿(伐)和心宿(大火)來確定季節,還使用北斗(北辰)來定季節。  北斗七星繞北極旋轉就象一個鐘錶的錶針一樣,每天轉一圈,不過是逆時針轉動,而且轉一圈的時間要比24小時短上近4分鐘。這樣一年365天,北斗要轉上366圈。古人就把北極這塊「鐘錶」標上了十二時辰,即斗柄北指(下指)為子、南指(上指)為午、東指為卯、西指為酉等等。  在不同的季節、不同的時間,北斗七星在北方天空的位置也不同,所以根據北斗七星的所在位置可以判定季節。《鶡冠子》說:「斗柄東指,天下皆春;斗柄南指,天下皆夏;斗柄西指,天下皆秋;斗柄北指,天下皆冬」。古人發現,在冬天黃昏時,北斗七星的斗柄正指向北方,故稱該月為「子月」,如果曆法是以子月為一年的開始就叫「建子」。而春天黃昏時,斗柄正指向東方,稱該月為「卯月」。  而且,古人也發現北斗是和二十八宿一起旋轉的,只要看到北斗轉的位置就可推知二十八宿的位置。如此,古人就將整個星空分成十二塊(以和十二月相應),就像從北極下刀切成的12塊西瓜瓣一樣,分別取名為星紀、玄枵、娵訾、降婁、大梁、實沈、鶉首、鶉火、鶉尾、壽星、大火、析木,這種劃分方法相傳是由黃帝確立的,叫做「十二次」。比如在東周時期,子月時太陽在星紀(鬥牛),寅月時太陽在娵訾(室壁),巳月時在實沈(觜參),戍月時在大火(房心)等。當然,由於歲差的影響,不同時代十二次與節氣月份是有著不同的對應關係。  「天上的群星參北斗」。由於北斗牽連著十二次、二十八宿以及節氣月份等,因此,《史記天官書》說:「斗為帝車,運於中央,臨制四方。分陰陽,建四時,均五行,移節度,定諸紀,皆繫於斗。」古代帝王就將觀測北斗作為極為重要的政治任務,故堯曰:「咨爾舜,天之曆數在爾躬,允執其中,四海困窮。」書曰:「在璇璣玉衡,以齊七政」。這裡的「璇璣玉衡」就是專門用於觀測北斗旋轉方位的儀器(當然,大名鼎鼎的夏鼐是反對這種說法的),儀器中心就是瞄準北天極,古稱「天心」。收藏 | 7樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:22:00   曆法漫談19:「歲星」與「太歲」    古人把木星叫做「歲星」,因為木星繞太陽一周的時間為11.86年,差不多每年在星空中走一「次」。比如某年木星在「鶉火」,稱為「歲在鶉火」,則下一年則是「歲在鶉尾」。這和十二次與節氣月份的順序是一樣的。因為太陽是順著二十八宿運動,這樣節氣和月份也相當於順著二十八宿的順序,木星的運動也是順著二十八宿運動。而如果十二次是按月份來劃分,則也是順著二十八宿的。但是,有人認為還有「十二辰」,和十二次的順序是逆著的,這恐怕是戰國時甘德對十二次理解錯誤而提出的「十二辰」。  但由於木星的周期並不正好是12年,而且有逆行的運動。於是人們就就假設一個均勻運動的天體,叫「太歲」,也叫「太陰」,每年走一「次」,12年在星空中走一圈。這樣木星和太歲均是順著十二次運動,只是木星運動不均勻,而太歲的運動是均勻的。其實,太歲就是按年的地支順序,只不過取了一些特殊的名字。  《爾雅》稱:「太歲在甲曰閼逢,在乙曰旃蒙,在丙曰柔兆,在丁曰強圉,在戊曰著雍,在己曰屠維,在庚曰上章,在辛曰重光,在壬曰玄黓,在癸曰昭陽。──歲陽。  太歲在寅曰攝提格,在卯曰單閼,在辰曰執徐,在巳曰大荒落,在午曰敦牂,在未曰協洽,在申曰涒灘,在酉曰作噩,在戌曰閹茂,在亥曰大淵獻,在子曰困敦,在丑曰赤奮若。  載,歲也。夏曰歲,商曰祀,周曰年,唐虞曰載。──歲名。  月在甲曰畢,在乙曰橘,在丙曰修,在丁曰圉,在戊曰厲,在己曰則,在庚曰窒,在辛曰塞,在壬曰終,在癸曰極。──月陽。  正月為陬,二月為如,三月為寎,四月為余,五月為皋,六月為且,七月為相,八月為壯,九月為玄,十月為陽,十一月為辜,十二月為塗。──月名。」  由此可知,太歲不但有年地支的特殊名稱,而且有年天乾的特殊名稱。同時,月的干支也有自己的特殊稱呼。如《離騷》說:「攝提貞於孟陬兮,惟庚寅吾以降。」,「攝提」是寅年,「孟陬」是孟春正月,「庚寅」是日干支,說明屈原生於寅年寅月庚寅日。如此看來,古人使用這些特殊稱呼,大概是為了與日干支進行區分。但在東漢以後就不再使用年月干支的特殊說法,而與日的干支一樣使用「六十甲子」了。    曆法漫談20:天文年代學    前面講了曆法及其相聯繫的有關天象,這種密切聯繫就使得人們有可能利用歷史上的有關天象來確定年代。基於天文現象和天體運動的規律,通過數學計算可以相當準確地確定出天象發生的日期。如果一個歷史事件與某些天象相聯繫,就有可能通過這樣的回推天象方法來確認該歷史事件發生的日期,這種方法就被稱為天文年代學。  例如,古希臘哲學家泰勒斯預言了一次日食的發生,從而制止了米底王國和呂底亞王國的交戰。通過回推天象的方法可以確認,這次日食發生在公元前585年5月28日。  而據蘇格蘭歷史記載,當時,挪威國王哈康四世率領大批船隊渡海準備去懲罰蘇格蘭國王。他們在中途的奧克尼群島(Orkney Islands)停留時,天上的太陽變成了細亮環。19世紀初的英國物理學家布儒斯特(D. Brewster)據此確認,這是發生在公元1263年8月5日的日環食。  天文年代學的學科名稱始於二十世紀二十年代,但實際上很早就有人做類似的工作了。例如,我國西漢末的劉歆和唐朝的一行。在天文年代學中經常使用的天象有日月食、朔望、行星、彗星和恆星等。但由於天象的周期性,要用天象來確定年代,往往需要結合其他文獻和考古學的年代資料。也就是說,用其他方法來確定大致的年代範圍,再用天象來定具體的年份。  曆法漫談21:天狼星周期  古埃及把尼羅河開始泛濫和天狼星偕日同升的那一天作為新年開始,這樣的事情是每年都發生一次,是一個回歸年(太陽年)的長度。但古埃及的曆法是一年365天,差不多是每4年相差一日,720年差半年,1460年差一年,這樣1460年就叫「天狼星周期」。文獻上講,在公元139到142年間發生過天狼星偕日升的現象,人們認為這時其曆法起點與偕日升為同一天。如此上推兩個天狼星周期,則曆法起點分別為公元前1313年和公元前2769年。  如果有天狼星與日偕升的記錄,而且註明了是幾月幾日。因為天狼星偕日升的日期是可以計算出來的,並與其記錄的月日比較,確定出相差幾天。例如提早了335天,按4年差1天計算,表明與天狼星周期的起點(如公元前2769年)相差了1340年(=335×4),即為公元前1429年。目前已知古埃及有兩條天狼星與日偕升的記錄,史料記載的一條被確定為公元前1872或1830等三個年份,埃伯斯紙草記錄的另一條被確定為公元前1525年等三個年份。不同年份是因為假定不同的觀測地點,故看到天狼星偕日升的日期是不相同的,日期差1天就相當於4年。  孫小淳曾如此評價說:「用天狼星偕日出定年代的方法是基於一個非常根本的假設之上,就是古埃及的民用太陽曆從未有過調整。……古埃及民用歷明明分一年為三季,為尼羅河泛濫期、冬季和夏季,如果不作置閏的調整,那曆法上的三季很少是和實際季節符合的,……嚴格說來,只有天狼星周期1460年起始的那一年季節才真正地名副其實,這對注重農業的古埃及人來說同樣也是很奇怪的。然而,埃及的年代學正是建立在這種不變的民用太陽曆的假設之上。自從1904年德國學者梅耶爾提出這種假設之後,埃及年代學的大廈就逐步建立起來。到目前為止,還沒有強有力的證據推翻這種假設,於是假設竟成為公理一般;而如果沒有這個假設,就無從談埃及的天文年代學。」收藏 | 8樓 | 打賞 | 評論 樓主:成康之治 時間:2011-05-30 00:27:00   曆法漫談22:金星泥版    對於兩河流域的年代學,公元2世紀的古希臘天文學家托勒密在其著作中給出從公元前747年到公元前323年之間的30個王的年表。對前747年以前的年代,人們根據古巴比倫記載的一次日食,確定其為公元前763年6月15日,如此建立了公元前1000年以後的各王年。  在出土的文物中,有一批帶有楔形文字的泥版,寫作年代為公元前7世紀(相對於春秋時期),其中一塊記載著8年的金星運行情況,文字中提到了一個古王。在數十年里,許多天文學家計算了這8年金星記錄所對應的年代,有公元前1920、1702、1646和1582年等。著名的漢穆拉比是在此前146年,由此形成了巴比倫年代學的三個系統:高年代系統取漢穆拉比元年為前1848年、中年代系統為前1792年、低年代系統為前1728年。三個年代系統各有自己的證據,但多數人取中年代系統。  從漢穆拉比上溯,根據古王年表可以推到公元前2700年。再往前,則是每王在位140年到1200年不等,甚至有8王共治24200年的說法。    曆法漫談23:夏商周斷代    在司馬遷給出的年表中,有年代的最早到公元前841年。對於這之前的歷史年代,二十世紀末的「夏商周斷代工程」應該說是向前推進了一大步。雖然該工程給出的年代還不能算是定論,但與古巴比倫年代學等比起來,所得到的成果還是很不錯的。  在這個工程里,有一些天文年代學的例子。例如,劉次沅等觀測「天再旦」的現象,還有陳久金的「金文歷譜」、江曉原的「武王伐紂」、張培瑜的「甲骨文月食」以及李勇的「帝辛周祭」等。這些基本上是利用天象回推和干支回推的方法來確定年代,絕大多數均有多個年代的選擇,這就需要結合其他的材料來限定年代範圍。而象「仲康日食」、夏禹的「五星連珠」就只能給出幾個候選年代了。  然而,在用天文曆法研究中國古代年代時,絕大多數情況下都會用到一個假設,即紀日干支的連續性。這是假定在數千年的時間裡,用六十甲子來標記日子的方法從未中斷,也沒有調整過。對於春秋以來,紀日干支確實是連續不斷的,但在春秋以前則只能是假定了。  縱觀有關天文曆法的工作,大致可以分為幾類:一是復原古曆法,按古人的推算來確定當時的年月日或有關天象;二是用現代的天象回推來確定古曆法的準確度或是確定年代;三是用干支紀日來推定古代曆法的設定或確定年代。這些方法很早就已經存在了,但今天人們還在使用,只是面對的問題有所不同。
推薦閱讀:

曆法--陰曆 農曆是陰陽合曆
無中生有的事情你再重複一遍(二)
日復一日,年復一年(一篇文章搞清楚各曆法之日、月、年、閏)
談談曆法
日曆網 陰陽合曆 曆法

TAG:中國 | 曆法 | 古代 |