而在唐高祖武德二年(619)的時(shí)候,頒行了傅仁均的《戊寅元?dú)v》。《戊寅元?dú)v》首次採(cǎi)用定朔,是中國(guó)曆法史上的一次大改革。在《戊寅元?dú)v》之前,曆法都用平朔,即用日月相合週期的平均數(shù)值來(lái)定朔望月。《戊寅元?dú)v》首先考慮月行遲疾,用日月相合的真實(shí)時(shí)刻來(lái)定朔日,從而定朔望月,要求做到“月行晦不東見(jiàn),朔不西眺”。由於《戊寅元?dú)v》的一些計(jì)算方法有問(wèn)題,頒行一年後,對(duì)日月食就屢報(bào)不準(zhǔn)。武德六年,由吏部郎中?祖孝孫“略去尤疏闊者”,後又經(jīng)大理卿崔善爲(wèi)與算曆博士王孝通加以校正。貞觀初年,李淳風(fēng)上疏論《戊寅元?dú)v》十有八事。唐太宗詔崔善爲(wèi)考覈二家得失,結(jié)果李淳風(fēng)的七條意見(jiàn)被採(cǎi)納。李淳風(fēng)爲(wèi)改進(jìn)《戊寅元?dú)v》作出貢獻(xiàn),被授予將仕郎。貞觀十四年(640),李淳風(fēng)上言:《戊寅元?dú)v》術(shù)“減餘稍多”,合朔時(shí)刻較實(shí)際提前了,建議加以改正,這個(gè)意見(jiàn)又被採(cǎi)納。貞觀十八年,李淳風(fēng)又指出:《戊寅元?dú)v》規(guī)定月有三大、三小,但按傅仁均的算法,貞觀十九年九月以後,會(huì)出現(xiàn)連續(xù)四個(gè)大月,認(rèn)爲(wèi)這是曆法上不應(yīng)有的現(xiàn)象。於是唐太宗不得不下詔恢復(fù)平朔。改用平朔後,《戊寅元?dú)v》的問(wèn)題更多,改革勢(shì)在必行。
李淳風(fēng)根據(jù)他對(duì)天文曆法的多年研究和長(zhǎng)期觀測(cè),於麟德二年(665)編成新的歷法。經(jīng)司歷南宮子明、太史令薛頤、國(guó)子祭酒孔穎達(dá)參議推薦,唐高宗下詔頒行,並命名爲(wèi)《麟德歷》。《麟德歷》的主要貢獻(xiàn)有二:
第一,在中國(guó)曆法史上首次廢除章蔀紀(jì)元之法,立“總法”1340 作爲(wèi)計(jì)算各種週期(如迴歸年、朔望月、近點(diǎn)月等)的奇零部分的公共分母。中國(guó)古歷的“日”從夜半算起,“月”以朔日爲(wèi)始,而“歲”以冬至爲(wèi)始。古歷把冬至與合朔同在一日的週期叫做“章”,把合朔與冬至交節(jié)時(shí)刻同在一日之夜半的週期叫做“蔀”。古歷以十“天干”與十二“地支”紀(jì)年、日,如果冬至與合朔同在一日的夜半,紀(jì)日干支也復(fù)原了,則這個(gè)週期叫做“紀(jì)”;如果連紀(jì)年的干支也復(fù)原了,則這個(gè)週期叫做“元”。古代制歷都要計(jì)算這些週期,但這些週期對(duì)曆法計(jì)算並非必要,反而成爲(wèi)曆法的累贅,李淳風(fēng)毅然把它廢除了。《麟德歷》以前的各種曆法都用分母各不相同的分?jǐn)?shù)來(lái)表示各種週期的整數(shù)以下的奇零部分。這些週期,如期周(迴歸年)、月法(朔望月)、月周法(近點(diǎn)月)、交周法(交點(diǎn)月)等,都是曆法計(jì)算必須預(yù)先測(cè)定和推算的重要數(shù)據(jù)。因爲(wèi)這些週期參差不齊,計(jì)算十分繁瑣,比較各種數(shù)據(jù)也很不方便,李淳風(fēng)就立“總法”1340 作爲(wèi)各種週期奇零部分的公共分母,這樣,數(shù)字計(jì)算就比以前的歷法簡(jiǎn)便得多。《疇人傳》對(duì)此給予了高度評(píng)價(jià):“蓋會(huì)通其理,固與古不殊,而運(yùn)算省約,則此爲(wèi)最善,術(shù)家遵用,沿及宋元,而三統(tǒng)四分以來(lái),章蔀紀(jì)元之法,於是盡廢。斯其立法巧捷,勝於古人之一大端也。”
第二,重新採(cǎi)用定朔。《戊寅元?dú)v》雖首次採(cǎi)用定朔,但因爲(wèi)有關(guān)的計(jì)算方法未完全解決,又倒退到用平朔。爲(wèi)了使定朔法能站得住腳,《麟德歷》改進(jìn)了推算定朔的方法。李淳風(fēng)早年仔細(xì)地研究過(guò)隋朝劉焯的《皇極曆》,並撰寫(xiě)皇極曆又一卷。劉焯在北齊張子信關(guān)於日行盈縮的觀測(cè)結(jié)果的基礎(chǔ)上,創(chuàng)造了推算日月五星行度的“招差術(shù)”,即二次函數(shù)的內(nèi)插公式。李淳風(fēng)總結(jié)了劉焯的內(nèi)插公式,用它來(lái)推算月行遲疾、日行盈縮的校正數(shù),從而推算定朔時(shí)刻的校正數(shù)。爲(wèi)了避免曆法上出現(xiàn)連續(xù)四個(gè)大月的現(xiàn)象,他還創(chuàng)造了“進(jìn)朔遷就”的方法。《新唐書(shū)》卷二六所載的《麟德歷經(jīng)》說(shuō):“定朔日名與次朔同者大,不同者小。”這裡日名指紀(jì)日干支中的“幹”。還規(guī)定:“其元日有交、加時(shí)應(yīng)見(jiàn)者,消息前後一兩個(gè)月,以定大小,令虧在晦、二,弦、望亦隨消息。”消息是消減與增長(zhǎng)的意思。按這一規(guī)定,就可以做到“月朔盈朒之極,不過(guò)頻三。其或過(guò)者,觀定小余近夜半者量之”。這就是說(shuō),用改變一月中未滿一日的分?jǐn)?shù)(即小余)的進(jìn)位方法,來(lái)避免曆法上出現(xiàn)連續(xù)四個(gè)大月或小月。但應(yīng)指出,這種“進(jìn)朔”法是爲(wèi)了避免曆書(shū)上出現(xiàn)連續(xù)四個(gè)大月而人爲(wèi)遷就之法,並不是日月運(yùn)動(dòng)規(guī)律的正確反映。按近代的推算方法,採(cǎi)用定朔就有可能連續(xù)出現(xiàn)四個(gè)大月。
《麟德歷》爲(wèi)完成中國(guó)歷史上採(cǎi)用定朔這一改革作出了重要貢獻(xiàn)。“近代精數(shù)者,皆以淳風(fēng)、一行之法,歷千古而無(wú)差,後人更之,要立異耳,無(wú)逾其精密也”。此說(shuō)雖有溢美之辭,但由此可見(jiàn)《麟德歷》對(duì)後世曆法的重大影響。它作爲(wèi)唐代優(yōu)秀曆法之一,行用達(dá)六十四年(665 年至728 年)之久。《麟德歷》還曾東傳日本,並於天武天皇五年(667)被採(cǎi)用,改稱爲(wèi)《儀鳳歷》。
《麟德歷》的最大缺點(diǎn)是不考慮歲差。晉代虞喜發(fā)現(xiàn)歲差後,祖沖之首先把它用於制歷,大大提高了曆法的精密度。此後,隋朝張胄玄的《大業(yè)歷》、劉焯的《皇極曆》、唐初傅仁均《戊寅元?dú)v》都考慮了歲差。但李淳風(fēng)卻利用《堯典》四仲中星的內(nèi)在矛盾,根本否認(rèn)歲差存在。他與數(shù)學(xué)家王孝通一起責(zé)難《戊寅元?dú)v》考慮歲差,致使“歲差之術(shù),由此不行”。後在728 年張遂(一行)在編制《大衍曆》時(shí),才重新考慮歲差......