网页版书目

晋书 · 卷十八·志第八

晋书 · 目录

〔1〕魏尚书郎杨伟表曰:“臣览载籍,断考历数,时以纪农,月以纪事,其所由来,遐而尚矣。乃自少昊,则玄鸟司分,颛顼、帝喾,则重黎司天;唐帝、虞舜,则羲和掌日,三代因之,则世有日官。日官司历,则颁之诸侯,诸侯受之,则颁于境内。夏后之世,羲和湎淫,废时乱日,则《书》载《胤征》。由此观之,审农时而重人事,历代然之也。逮至周室既衰,战国横骛,告朔之羊,废而不绍,登台之礼,灭而不遵,闰分乖次而不识,孟陬失纪而莫悟,大火犹西流,而怪蛰虫之不藏也。是时也,天子不协时,司历不书日。诸侯不受职,日御不分朔,人事不恤,废弃农时。仲尼之拨乱于《春秋》,托褒贬纠正,司历失闰,则讥而书之,登台颁朔,则谓之有礼。自此以降,暨于秦汉,乃复以孟冬为岁首,闰为后九月,中节乖错,时月纰缪。加时后天,蚀不在朔,累载相袭,久而不革也。至武帝元封七年,始乃悟其缪焉,于是改正朔,更历数,使大才通人,更造《太初历》,校中朔所差,以正闰分,课中星得度,以考疏密,以建寅之月为正朔,以黄钟之月为历初。其历斗分太多,后遂疏阔。至元和二年,复用《四分历》,施而行之,至于今日,考察日蚀,率常在晦,是则斗分太多,故先密后疏而不可用也。是以臣前以制典余日,推考天路,稽之前典,验之以蚀朔,详而精之,更建密历,则不先不后,古今中天。以昔在唐帝,协日正时,允厘百工,咸熙庶绩也。欲使当今国之典礼,凡百制度,皆韬合往古,郁然备足,乃改正朔,更历数,以大吕之月为岁首,以建子之月为历初。臣以为昔在帝代,则法曰《颛顼》,曩自轩辕,则历曰《黄帝》,暨至汉之孝武,革正朔,更历数,改元曰太初,因名《太初历》。今改元为景初,宜曰《景初历》。臣之所建《景初历》,法数则约要,施用则近密,治之则省功,学之则易知。虽复使研桑心算,隶首运筹,重黎司晷,羲和察景,以考天路,步验日月,究极精微,尽术数之极者,皆未能并臣如此之妙也。是以累代历数,皆疏而不密,自黄帝以来,常改革不已。”

魏国的尚书郎杨伟上表说:“我阅读书籍,考察历法,用时节来记录农事,用月份来记录事情,这样的做法由来已久,可以追溯到远古。从少昊时代开始,就用玄鸟来掌管春分和秋分;颛顼和帝喾时代,让重黎主管天文;唐尧和虞舜时代,让羲和掌管太阳的运行。夏、商、周三代沿袭这种做法,世代都有日官。日官主管历法,将历书颁布给诸侯,诸侯接受后,再颁布到自己的封地内。夏朝时,羲和沉迷酒色,荒废了时节,扰乱了日月,所以《尚书》中记载了《胤征》这篇。由此看来,重视农时和人事,历代都是这样做的。到了周朝衰落,战国纷争,告朔的羊被废弃而不再延续,登台颁布历法的礼仪也被废除而不遵守,闰月错位却无人知晓,正月失序也无人醒悟,大火星(心宿)还在西流,人们却奇怪为什么蛰虫不藏起来。那个时候,天子不协调时节,司历官不记录日子,诸侯不履行职守,日官不区分朔日,不关心农事,废弃了农时。孔子在《春秋》中拨乱反正,用褒贬来纠正,司历官漏掉闰月,他就讥讽并记录下来,登台颁布朔日,他就认为这是有礼的。从此以后,到了秦汉时期,又用孟冬作为一年的开始,闰月放在后九月,节气混乱,时间月份错乱。加上时刻落后于实际天象,日食不在朔日,这种状况沿袭了很多年,很久没有改变。到了汉武帝元封七年,才意识到其中的错误,于是改正历法,更换历数,让有才华通达的人重新制作《太初历》,校正中朔的误差,来修正闰分,观测中星得到度数,来考察疏密,以建寅之月为正月初一,以黄钟之月为历法起点。这个历法的斗分太多,后来就变得疏阔了。到了汉章帝元和二年,又重新使用《四分历》,施行沿用直到今天,考察日食,常常在晦日,这是因为斗分太多,所以先精密后疏阔而不可用。因此我此前在制定典章制度的剩余时间,推考天象,查阅前代典籍,用日食朔日来验证,详细精审,重新建立精密的历法,这样既不提前也不落后,古今都符合天象。就像古代唐尧时,协调日月、端正时节,使百官各尽其职,各种事业都兴盛。想要使当今国家的典章礼仪、所有制度,都符合古代,完备充足,于是改正历法,更换历数,以大吕之月为岁首,以建子之月为历法起点。我认为古代帝王时代,历法叫《颛顼历》,从轩辕黄帝时起,历法叫《黄帝历》,到了汉武帝改革历法,改年号为太初,因此称为《太初历》。现在改年号为景初,应该叫《景初历》。我所建立的《景初历》,法则数字简约扼要,施用起来接近精密,治历省事,学起来容易懂。即使让研桑(精通计算的人)心算,隶首(古代数学家)运筹,重黎掌管晷影,羲和观测日影,来考察天象,推算日月,穷尽精微,达到术数的极致,也无法像我的历法这样巧妙。所以历代历法,都疏阔而不精密,从黄帝以来,常常改革不断。”

〔2〕壬辰元以来,至景初元年237丁巳岁,积四千四十六,算上。

从壬辰元开始,到景初元年丁巳年,累积了四千零四十六年,这是包括起点年份在内的算法。

〔3〕此元以天正建子黄钟之月为历初,元首之岁,夜半甲子朔旦冬至。

这个历元以天正建子月(即黄钟月,农历十一月)作为历法的起点,在元首的那一年,夜半甲子日朔旦冬至。

〔4〕元法,万一千五十八。

元法的数值是一万一千零五十八。

〔5〕纪法,千八百四十三。

纪法的数值是一千八百四十三。

〔6〕纪月,二万二千七百九十五。

纪月的数值是二万二千七百九十五。

〔7〕章岁。十九。

章岁是十九年。

〔8〕章月,二百三十五。

章月是二百三十五个月。

〔9〕章闰,七。

章闰是七个闰月。

〔10〕通数,十三万四千六百三十。

通数的数值是十三万四千六百三十。

〔11〕日法,四千五百五十九。

日法的数值是四千五百五十九。

〔12〕余数,九千六百七十。

余数的数值是九千六百七十。

〔13〕周天,六十七万三千一百五十。

周天的数值是六十七万三千一百五十。

〔14〕纪岁中,十二。

纪岁中是十二,即一年有十二个月。

〔15〕气法,十二。

气法是十二,即一年有十二个节气(或中气)。

〔16〕没分,六万七千三百一十五。

没分的数值是六万七千三百一十五。

〔17〕没法,九百六十七。

没法的数值是九百六十七。

〔18〕月周,二万四千六百三十八。

月周的数值是二万四千六百三十八。

〔19〕通法,四十七。

通法的数值是四十七。

〔20〕会通,七十九万百一十。

会通的数值是七十九万零一百一十。

〔21〕朔望合数,六万七千三百一十五。

朔望合数的数值是六万七千三百一十五。

〔22〕入交限数,七十二万二千七百九十五。

入交限数的数值是七十二万二千七百九十五。

〔23〕通周,十二万五千六百二十一。

通周的数值是十二万五千六百二十一。

〔24〕周日日余,二千五百二十八。

周日日余的数值是二千五百二十八。

〔25〕周虚,二千三十一。

周虚的数值是二千三十一。

〔26〕斗分,四百五十五。

斗分的数值是四百五十五。

〔27〕甲子纪第一

甲子纪是第一个纪。

〔28〕纪首合朔,月在日道里。

每个纪的开头,合朔的时候,月亮在日道(黄道)的里面(即北侧)。

〔29〕交会差率四十一万二千九百一十九。

交会差率是四十一万二千九百一十九。

〔30〕迟疾差率,十万三千九百四十七。

迟疾差率是十万三千九百四十七。

〔31〕甲戌纪第二

甲戌纪是第二个纪。

〔32〕纪首合朔,月在日道里。

这个纪的开头,合朔的时候,月亮在日道里面。

〔33〕交会差率,五十一万六千五百二十九。

交会差率是五十一万六千五百二十九。

〔34〕迟疾差率,七万三千七百六十七。

迟疾差率是七万三千七百六十七。

〔35〕甲申纪第三

甲申纪是第三个纪。

〔36〕纪首合朔,月在日道里。

这个纪的开头,合朔的时候,月亮在日道里面。

〔37〕交会差率,六十二万一百三十九。

交会差率是六十二万一百三十九。

〔38〕迟疾差率,四万三千五百八十七。

迟疾差率是四万三千五百八十七。

〔39〕甲午纪第四

甲午纪是第四个纪。

〔40〕纪首合朔,月在日道里。

这个纪的开头,合朔的时候,月亮在日道里面。

〔41〕交会差率,七十二万三千七百四十九。

交会差率是七十二万三千七百四十九。

〔42〕迟疾差率,一万三千四百七。

迟疾差率是一万三千四百零七。

〔43〕甲辰纪第五

甲辰纪是第五个纪。

〔44〕纪首合朔,月在日道里。

这个纪的开头,合朔的时候,月亮在日道里面。

〔45〕交会差率,三万七千二百四十九。

交会差率是三万七千二百四十九。

〔46〕迟疾差率,十万八千八百四十八。

迟疾差率是十万八千八百四十八。

〔47〕甲寅纪第六

甲寅纪是第六个纪。

〔48〕纪首合朔,月在日道里。

这个纪的开头,合朔的时候,月亮在日道里面。

〔49〕交会差率,十四万八百五十九。

交会差率是十四万八百五十九。

〔50〕迟疾差率,七万八千六百六十八。

迟疾差率是七万八千六百六十八。

〔51〕交会纪差十万三千六百一十。求其数之所生者,置一纪积月,以通数乘之,会通去之,所去之余,纪差之数也。以之转加前纪,则得后纪。加之未满会通者,则纪首之岁天正合朔月在日道里;满去之,则月在日道表。加表,满在里;加里,满在表。

交会纪差是十万三千六百一十。这个数是怎么来的呢?取一个纪的累积月份,乘以通数,再用会通去除,余数就是纪差。把这个纪差加到前一个纪上,就得到后一个纪的纪差。如果加后不满会通,那么该纪首年天正月的合朔时月亮在日道里面;如果满会通而去掉,则月亮在日道外面。如果原本在表(外面)的,加满会通就在里(里面);在里的,加满就在表。

〔52〕迟疾纪差三万一百八十。求其数之所生者,置一纪积月,以通数乘之,通周去之,余以减通周,所减之余,纪差之数也。以之转减前纪,则得后纪。不足减者,加通周。求次元纪差率,转减前元甲寅纪差率,余则次元甲子纪差率也。求次纪,如上法也。

迟疾纪差是三万一百八十。这个数怎么来的呢?取一个纪的累积月份,乘以通数,再用通周去除,余数再用通周减去,减完的余数就是纪差。用这个纪差去减前一个纪的纪差,就得到后一个纪的纪差。如果不够减,就加上通周。求下一个元(更长的周期)的纪差率,用前一个元的甲寅纪差率减去本元的甲寅纪差率,余数就是下一个元的甲子纪差率。求下一个纪,方法同上。

〔53〕推朔积月术曰:置壬辰元以来,尽所求年,外所求,以纪法除之,所得算外,所入纪第也,余则入纪年数也。以章月乘之,如章岁而一,为积月,不尽为闰余。闰余十二以上,其年有闰。闰月以无中气为正。

推算朔日积月的方法:设置从壬辰元开始,到所求年份为止(包括所求年),用纪法去除,得到的结果(不包括余数)就是进入第几个纪,余数就是进入该纪的年数。用章月(235)乘以这个年数,再除以章岁(19),得到积月,余数就是闰余。如果闰余在十二以上,这一年就有闰月。闰月以没有中气的那一个月为准。

〔54〕推朔术曰:以通数乘积月,为朔积分。如日法而一,为积日,不尽为小余。以六十去积日,余为大余。大余命以纪,算外,所求年天正十一月朔日也。

推算朔日的方法:用通数乘以积月,得到朔积分。除以日法,得到积日,余数就是小余。用六十去除积日,余数就是大余。大余用纪来命名(从甲子开始计数),算外,就是所求年天正十一月(即农历十一月)的朔日。

〔55〕求次月,加大余二十九,小余二千四百一十九,小余满日法从大余,命如前,次月朔日也。小余二千一百四十以上,其月大也。

求下个月的朔日,在大余上加二十九,小余上加二千四百一十九。如果小余满日法,就进位到大余。然后像前面一样命名,得到下个月朔日。如果小余在二千一百四十以上,那么这个月是大月(30天)。

〔56〕推弦望,加朔大余七,小余千七百四十四,小分一,小分满二从小余,小余满日法从大余,大余满六十去之,余命以纪,算外,上弦日也。又加,得望、下弦、后月朔。其月蚀望者,定小余如在中节者定小余如所近中节间限数、限数以下者,算上为日。望在中节前后各四日以还者,视限数;望在中节前后各五日以上者,视间限。

推算弦日和望日,在朔日的大余上加七,小余上加一千七百四十四,再加一分的小分。小分满二就进到小余,小余满日法就进到大余,大余满六十就去掉,余数用纪来命名,算外就是上弦日。再加一次,得到望日;再加一次,得到下弦日;再加一次,得到下个月朔日。其中如果月食发生在望日,要确定小余。如果小余正好在中节(中气)的范围内,就按照所靠近的中节间限数或限数以下的情况,算上为日。望日在中节前后各四天以内的,看限数;望日在中节前后各五天以上的,看间限。

〔57〕推二十四气术曰:置所入纪年,外所求,以余数乘之,满纪法为大余,不尽为小余。大余满六十去之,余命以纪,算外,天正十一月冬至日也。

推算二十四节气的方法:设置所进入纪的年数,外所求(即所求年份),用余数乘以它,满纪法得到大余,余数就是小余。大余满六十就去掉,余数用纪来命名,算外就是天正十一月冬至日。

〔58〕求次气,加大余十五,小余四百二,小分十一,小分满气法从小余,小余满纪法从大余,命如前,次气日也。

求下一个节气,在大余上加十五,小余上加四百零二,小分上加十一。小分满气法(十二)就进到小余,小余满纪法就进到大余,像前面一样命名,得到下一个节气日。