从公元25年开始,咱们用的是《三统历》,用了好一百多年了。可是这历法慢慢地跟实际情况对不上了,月亮的朔日(初一)老是比历法上算的要早,有时候甚至初一出现在月末(晦日),月亮初现也跟历法对不上号。仔细看看这历法,发现日子是越来越短,而月份却越来越长,这不对劲啊!

到了公元32年,有个叫朱浮的太仆和叫许淑的太中大夫,好几次上书给皇上,说这历法算的朔日不对,该改改了。当时,这误差还不太大,皇上觉得天下刚平定,没工夫管这事儿。一直到公元52年,官府用的历法在七月十六预报了月食,结果呢?

有个叫杨岑的官员,他发现最近几次月食,实际发生的时间都比官历上算的要早。他用计算的方法算了一下,发现是月亮的计算出了问题,就上书皇上说:“月亮应该在十五日发生月食,官历算错了!”皇上就下令让杨岑好好观察,跟官历对照一下。从七月一直到十一月,一共观察了五次月亮的弦望(农历初七、初八和廿二、廿三),官历次次都错,杨岑次次都对!

皇上高兴坏了,庚寅日(具体日期已无法考证),就下令让杨岑负责计算弦望和月食的时间。同时,又让张盛、景防、鲍邺这几个官员用《四分法》跟杨岑一起算,比比看谁算得准。一年多以后,张盛他们算的,比杨岑多错了六次。公元52年十一月丙子日(具体日期已无法考证),皇上就下令让张盛和景防代替杨岑负责计算弦望和月食的时间,并且把时间加进去。这样,《四分法》才开始正式使用。

不过,那时候张盛他们还没完全搞清楚历法的根本原理,也没能全面校正分度,所以他们只是用《四分法》来计算弦望的时间而已。

话说,九年过去了,有个叫董萌的太史令(相当于天文专家)上奏说,咱们现在用的历法不对劲儿。这事儿就交给了朝廷里管这事儿的几个大佬,还有懂历法的专家们一起讨论,一直到十年的四月,也没人能拿出个明确的证据来说明到底怎么回事儿。

到了元和二年,那《太初历》已经和天象差得越来越远了。日月星辰的位置都对不上号,大家都知道冬至那天太阳应该在斗宿二十一度的位置,可现在还没到牵牛五度呢,历法上却说太阳在牵牛座的中间。 这历法算出来的月份、日期也和实际情况差了一天,星宿位置也差了五度。汉章帝知道这历法不对,就问了问史官们,史官们虽然也觉得不对,但也没办法改。所以,章帝就召集了几个懂历法的专家,比如李梵他们,一起研究这事儿。二月甲寅这天,皇帝下诏说:“我听说古代圣明的君王,都是顺应天意,不违背天道的。《河图》上说:‘赤九会昌,十世以光,十一以兴’,又说‘九名之世,帝行德,封刻政’。我德行不够,却承载着这份伟业,日夜谨慎,不敢懈怠。我这个小人物,能不能延续这份兴盛,光宗耀祖,拯救黎民百姓呢?《尚书璇玑钤》说:‘述尧世,放唐文’,《帝命验》说:‘顺尧考德,题期立象’。再说,历法这东西,历朝历代都不一样,优劣各不相同,更何况我们现在这个历法粗糙落后,根本无法胜任!虽然我想沿用它,但实在做不到啊!每次看到这些书,心里就非常不安。最近一段时间,国家政事不顺,阴阳失调,灾害不断,瘟疫流行,伤及牛羊,农业歉收。这些吉凶征兆,五行的反应,都反映在我的身上。看来我的确有所不足,该如何弥补呢?《尚书》上说:‘惟先假王正厥事’,又说:‘岁二月,东巡狩,至岱宗,柴,望秩于山川。遂觐东后,叶时月正日’。效仿尧帝去泰山祭祀,统一度量衡,参考璇玑玉衡,来改正历法,或许会有所帮助。《春秋保乾图》说:‘三百年斗历改宪’。现在史官们用的是《太初历》邓平的算法,每三百年就会多出一部分,时间一长,误差就会越来越大,导致历法越来越不准确。璇玑星的位置不对,天文现象和历法对不上号。冬至那天太阳明明在斗宿二十一度,历法上却说在牵牛座中间。立春提前一天,那是《四分历》的立春日。用这样的历法来判案定刑,已经违背了天理;用它来预测吉凶,也早就偏离了正轨。现在,我决定改用《四分历》,效法尧帝,顺应孔子的奉天之旨。希望天下君子和百姓,都能齐心协力,共同遵守,如果能因此国泰民安,也算是完成了先祖的遗愿。”于是,《四分历》就开始使用了。

但是,李梵他们又觉得,十一月应该先大后小,这样才能使朔望日期相符合,并且每个月都有固定的日期,这样十九年七闰的算法才能成立,否则阴历的朔望日期就会出现错误。 这个新历法还没用多久,汉章帝又开始思考这个问题了,他查阅了各种典籍,让左中郎将贾逵去询问了卫承、李崇、梁鲔、严勖、徐震、苏统、李梵等十位专家。他们认为,一个月应该先小后大,因为《春秋经》只记载朔日而不记载晦日,说明朔日一定有明有暗,如果朔日没有,那一定是在这个月里。如果先大后小,那就意味着一个月有两个朔日,下一个月就没有朔日了,这显然是不可能的。李梵他们坚持认为应该先大后小,但没有确凿的证据,只是为了使望日正好是十六日,月球圆缺符合规律,晦日正好是月球消失的时候。而且,晦日和朔日不能在同一天。章帝知道了李梵他们的想法后,下令不要拘泥于已经颁布的历法,规定天元始起之月应该先小后大。这样一来,后来的历法计算就准确了。永元年间,朝廷又让史官用《九道法》来推算朔望,结果发现没有偏差。贾逵把大家的意见整理成文,后来的历法改革都参考了他的意见,所以把这些都记录下来了。

逵说啊,你看这《太初历》里写的,冬至那天太阳在牵牛座的起始位置,也就是牵牛座中间那颗星。可是古时候,从黄帝时代到夏、商、周、鲁朝,冬至太阳都在斗宿(也就是我们现在说的北斗七星)的位置。《太初历》里说斗宿在黄道上是二十六度三百八十五分,而牵牛座只有八度。你看史官的记录,冬至夏至的实际位置,跟《太初历》算出来的,总差不到五度,实际的冬至太阳位置在斗宿二十一度四分之一度。石申的《星经》里写着:“黄道经过牵牛座起始位置,正好对着斗宿二十度,距离北极二十五度。” 在赤道上算,那就是斗宿二十一度。 《四分历》和史官的观测结果,天体度数都差不多。《尚书考灵曜》里也说:“斗宿二十二度,没有零头,冬至太阳在牵牛座升起的地方。” 我们现在观测到的位置,离牵牛座中间那颗星还有五度,大概在斗宿二十一度四分之一度,跟《考灵曜》说的差不多,所以这个说法比较靠谱。

元和二年八月,皇帝下令说:“石申的观点不能丢弃!” 然后就让两个小组分别观测,看谁算得更准。太史令玄他们从元和二年一直观测到永元元年,一共五年,算出了太阳每天运行的度数,结果冬至那天太阳的位置在斗宿二十一度四分之一度,这跟古代历法里说的斗宿位置,还有《考灵曜》里说的太阳升起的位置都吻合,星体之间的距离也跟石申的记录一样。 那些说冬至太阳在牵牛座起始位置的人,他们的说法从此就被否定了。

逵说啊,用《太初历》来推算从汉元帝初元元年到太初元年发生的23次日食,其中17次符合朔日,4次符合晦日,2次符合朔日后的第二天;而用新历来推算,则有7次符合朔日,14次符合晦日,2次符合朔日后的第二天。再用《太初历》推算从太初元年到更始二年发生的24次日食,有10次符合晦日;用新历推算,则有16次符合朔日,7次符合朔日后的第二天,1次符合晦日。最后,用《太初历》推算从建武元年到永元元年发生的23次日食,有5次符合朔日,18次符合晦日;用新历推算,则有17次符合朔日,3次符合晦日,3次符合朔日后的第二天。

另外,用新历反过来推算《春秋》里记载的24次日食和朔日,有23次都不准确。这说明天道的运行参差不齐,必然有盈有亏,盈亏的程度也不一样,不能用一个标准来衡量。历法制定者通常用76年为一个周期,这样就能逐渐消弥盈亏,大致上能保证每日的准确性。《易经》里讲金火相革的卦象说:“君子以此来治理历法,明察时令。”又说:“汤、武革命,顺应天意,符合民心。”意思是说,圣人必须根据日月星辰的运行规律制定历法,因为数千万年的时间里,数字的规律必然会发生变化,所以要先推算出一定的周期,然后根据日月星辰的位置来调整历法。所以说,推算周期,调整历法以符合日月星辰的运行,是一种超越时代的技术。《太初历》无法一直沿用到今天,新历也无法追溯到汉元帝时期。一个历法体系的有效期大概在三百年左右,所以谶语说“三百年斗历改宪”。汉朝建立后,一直沿用《太初历》而不更改,直到太初元年一百二十年后才进行修改。所以在此之前,会出现朔日提前一天的情况,到了成帝、哀帝时期,则出现朔日推迟一天的情况,所以符合朔日的情况大多出现在晦日之后,这就是明显的证据。

逵说:“我以前跟傅安他们一起用黄道来计算日月盈亏,结果发现很接近实际情况。可是史官却用赤道来计算,跟日月的实际运行路线不一样,现在历法里的盈亏时间,跟实际情况已经差了一天以上了!他们还老是上奏说这是因为日月运行速度变化了,甚至说太阳在倒着走!但如果用黄道来计算,就能得到正确的运行速度,根本不需要改动。所以我请求把太史官记录的日月星辰位置和运行速度的数据,拿来跟专门研究星象的官员一起核对一下。”皇上批准了。逵接着说:“我仔细查阅了以前的记录,发现冬至太阳离北极点一百一十五度,夏至离北极点六十七度,春秋分则离北极点九十一度。《洪范》里说‘日月运行,决定了冬夏的变化’;《五纪论》里也说‘日月沿着黄道运行,最南到牵牛星,最北到东井星,太阳每天运行一度,月亮每天运行十三度十九分之七度’。现在史官却用赤道来计算,跟日月的实际运行路线不一样。比如,在斗宿、牵牛星、东井星、舆鬼星附近,赤道测得的度数是十五度,而黄道测得的度数只有十三度半;在东壁、奎、娄、轸、角、亢这些星宿附近,赤道测得的度数是七度,而黄道测得的度数是八度;有时候月亮运行的距离多了,日月之间的距离反而变小了,史官就说这是太阳在倒着走。我查阅资料发现,黄道经过牵牛星时,比赤道南边偏离二十四度,经过东井星和舆鬼星时,比赤道北边偏离二十四度。赤道是天球的赤道,它距离北极点都是九十一度,这根本不是日月运行的轨道,用它来测量日月运行,当然会出错。我检查了太史官从元和二年九月以来记录的月亮在牵牛星、东井星附近运行的四十九次观测数据,没有一次是十一度的;又检查了月亮在娄宿、角宿附近运行的三十七次观测数据,也没有一次是十五六度的,这都跟史官说的不一样啊!我还问了姚崇、井毕等十二位负责天文观测的官员,他们都说:‘星图是有规律的,日月确实是沿着黄道运行的,只是官府没有合适的仪器,所以不知道怎么计算’。甘露二年,大司农中丞耿寿昌上奏说,他用天文仪器测量了日月运行,验证了天体运行的规律,结果发现日月运行到牵牛星、东井星附近时,太阳每天运行一度,月亮每天运行十五度;运行到娄宿、角宿附近时,太阳每天运行一度,月亮每天运行十三度,这是赤道造成的现象,这是古人就都知道的。如果用黄道来计算,就能符合天体的运行规律,太阳就不会出现倒退的现象,日月盈亏的时间也不会差一天,比用赤道计算更精确,所以应该采用黄道来计算。”很多大臣都同意逵的意见。这是逵在永元四年提出的建议。

到了永元十五年七月甲辰这天,皇上发布诏令,制造了一套黄道铜制天文仪器,上面标注了各个星宿的度数:角宿十三度,亢宿十度,氐宿十六度,房宿五度,心宿五度,尾宿十八度,箕宿十度,斗宿二十四又四分之一度,牵牛星七度,须女星十一度,虚宿十度,危宿十六度,营室宿十八度,东壁宿十度,奎宿十七度,娄宿十二度,胃宿十五度,昂宿十二度,毕宿十六度,觜宿三度,参宿八度,东井宿三十度,舆鬼宿四度,柳宿十四度,星宿七度,张宿十七度,翼宿十九度,轸宿十八度,总共三百六十五度四分之一度。冬至太阳位于斗宿十九度四分之一度。史官虽然用这个仪器来计算日月运行和日月盈亏,结果比较精确,但是他们并没有把这个仪器用于日常的观测和记录。因为这套黄道仪器,测量黄道和度量天体运行,不太方便使用,所以后来很少有人用它。

逵说:“现在史官推算朔日、弦日、望日和月食的时间,大多不准,是因为他们不懂月亮运行速度快慢的道理。《永平》年间,朝廷下诏让前任太史待诏张隆用《四分法》来计算弦日、望日和月食的时间。张隆说他能用《易经》的九、六、七、八爻来推算月亮运行的多少。但是,我查阅张隆计算的结果,很多都不对。我让他反过来推算他以前计算的结果,也不对。有时候,计算结果和实际的天象相差很远,甚至相差十多度。我和梵统一起,根据史官的记录进行核查,发现月亮的运行速度确实有快有慢,这并不一定只发生在牵牛、东井、娄、角星附近,也不是什么‘朓’、‘侧匿’之类的特殊现象,而是由于月亮运行的轨道有远近出入造成的。大概一个月月亮运行速度快的地方会移动三度,九个周期后又回到原点,一共九个周期,一百七十一岁后,朔日、冬至和十一月合朔又会重合。《春秋》和《三统历》中关于九个周期的说法也和这个结果一致,这样就能推算出朔日、弦日、望日和月食的时间了。我根据官方的天文度量单位进行计算,用我的方法推算建武年间以来的月食,一共三十八次,误差很小,效果很好,建议进行考核。”

史官以前有一种叫《九道术》的计算方法,后来废弃不用了。到了《熹平》年间,前任治历郎梁国宗重新整理了《九道术》,上报朝廷。朝廷下令太史院参考旧有的计算方法,进行比较。太子舍人冯恂负责审核,冯恂也重新编写了一套《九道术》,对原来的方法进行了增减修改,然后和梁国宗的版本进行比较,结果冯恂的版本更加准确。太史令飏用冯恂的算法来推算弦日和望日,但是推算的时间和实际的天象仍然前后不一,误差大的时候甚至能达到十多度。

公元78年,负责天文观测的太史令霍融上奏说:“咱们现在用的漏刻,九天就差一刻钟,跟实际的天文时间对不上,有时候甚至差到两刻半,不如夏历的计时精准。”皇上听了,就下令给太常寺,让史官们和霍融一起用天文仪器来校对一下时间。

太史令舒、承、梵等人一起回复说:“根据《令甲》第六篇《常符漏品》记载,汉宣帝地节三年十二月乙酉日(公元前47年12月)和建武十年二月壬午日(公元34年2月)这两次,皇上都下过诏书,规定了漏刻的使用方法。漏刻的刻度是根据每天日照时间的长短来调整的,每天太阳南北移动一度四分,漏刻就相应增减一刻。一个节气总共十五天,每天太阳离北极点或南极点的距离都不一样。现在咱们用的漏刻,九天就差一刻,它没随着太阳的运行而变化。而夏历的漏刻,是根据每天日照长短来调整的,比现在用的漏刻更精准,完全可以实行。”

那年十一月甲寅日(公元78年11月),皇上又下了一道诏书,说:“告诉司徒和司空:漏刻的作用是用来衡量时间,确定日夜的长度。日夜长短的变化,取决于太阳离北极点的远近,太阳的运行轨迹是圆形的,不能用固定的比例来计算,应该根据天文仪器观测的结果来确定。现在咱们用的漏刻,是用固定的比例来计算日夜长短的,九天就差一刻,这跟实际情况不符,偏差太大了,应该用更精确的方法。太史令霍融也上奏说,现在的漏刻跟天文时间对不上。太常寺的史官们用天文仪器校对后发现,官漏跟天文时间相差最多能达到三刻钟。用日晷来计时,误差就小得多,效果也很好。现在,我们制作了48箭的日晷漏刻,正式装备到各官府使用,等计算好之后,就发放下去。”因为内容太多,所以皇上还特别把二十四节气太阳的位置,以及黄道离北极点的距离、日晷计时、漏刻计时、日夜长短和中星时刻都记录下来了。

话说啊,以前那个《太初历》的制定,那可是从元封年间开始谋划,到元凤年间才最终确定下来,前后花了三十年时间,才算把对错都弄清楚了。后来又用上了《四分历》,也是从建武年间开始实施,一直用到元和、永元年间,前后七十年多,才算是把各种仪式和规矩都完善了,天文观测也才有了标准。你看,天上的事儿那么玄妙,制定历法就这么难!

自从东汉中兴以后,那些预言图谶到处乱传,而《考灵曜》、《命历序》这些书里,都把甲寅年当成起始年。可问题是,它们算出来的起始时间,是在《四分历》庚申年之后一百一十四年,结果朔日(农历初一)的计算却差了两天。那些在民间研究历法的学者,他们是怎么算出正确的日期的呢?这实在让人难以置信! 再说,《太初历》之后,人们发现它算天数有问题,那些修订历法的人就说:“一百四十四年后,岁星(木星)会超出一个星次,一百七十一后,就要去掉朔日余数六十三,中间还要加上一千一百九十七,这样才能长期使用。” 可是从太初元年到永平十一年,正好一百七十一,该去掉的余数却没去掉,所以历法就越来越不准了。

这两种历法,各自都坚持自己的方法,都想推行自己的历法。每当出现争议的时候,朝廷的大臣们都要开会讨论,一大堆儒生们就绞尽脑汁地辩论,各抒己见。这种讨论,对大家增长见识很有帮助,所以我就把这些情况详细地记录下来了。

汉安帝延光二年,有个叫亶的官员建议继续用“甲寅元”历法,河南的梁丰则说应该继续用《太初历》。负责处理这些事的官员张衡和周兴,都精通历法,他们和亶、丰辩论,结果亶和丰有的回答不对,有的说法有误。张衡和周兴仔细查阅了历法典籍,考证古今,认为《九道法》最为精确。于是皇帝下令让朝廷大臣们详细讨论。

太尉恺等人向侍中施廷等人汇报了讨论结果:“《太初历》计算天体运行有误差,每天的运行速度不一样,弦望(农历每月初八和二十三)的日期也不准,月亮在月末出现在西方,日食的发生时间也和天象不符;元和年间改用《四分历》,虽然《四分历》比《太初历》精确,但仍然不准确,都不能使用。‘甲寅元’历法与天象相符,也符合图谶的预言,可以实行。”博士黄广、大行令任佥也认为应该用《九道法》。河南尹祉、太子舍人李泓等四十多人则认为:“如果采用‘甲寅元’历法,就必须去掉《元命苞》中关于天地开辟、获麟等记载中的一百一十四年,还要调整闰月和日期,这样一来,朔日、晦日、弦望和二十四节气的星宿度数就会出现很多不符的情况。如果用《九道法》来确定朔日,那么每月的大小就参差不齐,很不规律。《四分历》的制定本来就是为了符合图谶中‘三百岁斗历改宪’的预言,最为准确,不应该轻易更改。”太尉恺等八十四人则认为应该沿用《太初历》。

尚书令忠上奏说:“那些主张沿用《太初历》的人,都没有什么其他的证据,只是说因为世宗皇帝时期开疆拓土,国家昌盛,所以《太初历》好。有人说孝章皇帝改用《四分历》后,灾难很多,没有带来好兆头。我认为,圣明的君王兴起,都会制定不同的历法来符合当时的形势。汉高祖建立汉朝后,沿用了秦朝的纪年方法,十月为一年之首,闰月都在年末。不参考前代的历法,违背了祖宗的制度。汉太宗时期,修订了历法,社会安定,祥瑞出现,刑法也得以完善。哀帝、平帝时期,都沿用《太初历》,却出现了很多灾难。那些主张沿用《太初历》的人,没有认真比较历法的优劣,而是盲目地相信一些不靠谱的说法,把好处都归功于《太初历》,把坏处都归咎于《四分历》。《太初历》是许多贤人制定的,是非功过早已确定,永平年间又重新审定了弦望的日期,现在又要改,这合适吗?《四分历》虽然有错误,但也不能使用。元和年间凤鸟的出现,和历法没有关系。远古的历法,我们应该赞扬它的优点;近代修改的历法,我们应该隐晦它的缺点。那些片面的说法,不足为信。我再次仔细审查了张衡和周兴的意见,他们认为五纪论推算星宿运行速度比较接近实际,但仍然没有考证古代的历法。以前向子歆想用历法来验证《春秋》的记载,随意更改年数,减少夏朝的年数,增加周朝的年数,和史书记载相比,出入很大。两部历法相比,相差六千一百五十六年,《太初历》多出一天。冬至太阳直射斗宿,却说在牵牛星附近,这太离谱了,不能再用了。史官们都看到了这些错误,不仅仅是张衡和周兴看到的。以前认为《九道法》比较精确,现在又有人说它有错误,‘甲寅元’历法也有很多错误,都不能采用。孔子为了维护君主的权威,顺从了假马的称号,更何况天象的运行规律,不能凭空猜测,不能把错误的当作正确的!”皇帝采纳了他的意见,停止了改历法的计划。

汉顺帝安二年,有个叫边韶的尚书侍郎给皇帝上奏说:这世道啊,要是失去了规律,就会衰败;要是遵循规律,国家就会兴盛。 以前孝武帝特别英明,在元封七年十一月甲子朔旦冬至那天,下令让太史令司马迁和负责历法的邓平等官员重新制定历法——《太初历》,还改了年号,改了月份的起始日,采用夏朝的历法标准,用《乾凿度》里“八十一分之四十三”作为日法的计算标准,还设立了专门观测天象的清台,观察各种天象异变,考核历法的精准程度,结果《太初历》是最准确的。

后来刘歆又深入研究,他参考了《春秋》和《易经》的理论,还用《河图帝览嬉》、《雒书乾曜度》来完善《九道》历法,算出每171年要调整63分,每144年要进行一次大的调整,这样才能和天象相符,很少出错。从太初历开始到永平十一年,一共171年,应该调整的余分是63分,但负责历法的官员不知道怎么处理这些余分。 因为计算出来的月球运行轨迹和实际观测结果对不上,那些不靠谱的历法理论就被淘汰了。到了元和二年,历法的小周期结束,余分越来越多,月亮的阴晴圆缺时间和计算结果对不上号了。

孝章皇帝看到《保乾图》上写着“三百年斗历改宪”,就采用了《四分历》。他把太白星复位的那一年,即甲子年,改成了癸亥年,强行让天象符合计算结果,还把庚申年定为纪元,但既没有明确的文献记载支持,又说庚申年是获麟的那一年,但这和《感精符》里说的单阏年又不符。 历代史官互相沿袭,就形成了很多疑问,很少有人能深入研究,追根溯源。其实啊,只要仔细观察月亮的圆缺变化,就能知道历法的准确性。

然后,皇帝把这道奏章发给了三公和百官,让他们一起讨论。太史令虞恭和负责历法的宗等人就提出了他们的意见:

建历的基础,首先要确定历法的起始点,也就是元正,有了元正才能确定每日运行的度数,确定了每日运行的度数才能推算周天运行,确定节气。这三样东西确定了,历法就能制定出来了。《四分历》的起始点,是从孝文皇帝后元三年,庚辰年开始的。往上推算四十五年,是乙未年,那是汉朝建立的第一年。再往上推算二百七十五年,是庚申年,那是孔子得到麟的年份。推算二百七十六万年,继续往上推,又会遇到庚申年。一年一年地往上推算,从下往上推,推算的结果不会出错。这是《四分历》元明文图谶里记载的内容。

太初元年是丁丑年,往上推算到它的起始点,应该是庚戌年,但实际上说是丙子年,也就是说比庚戌年多推算了144年,一共多推算了993年,一年空行了82周多一点,才得到丙子年。分析一下年份的推算,在甲子朔旦冬至,也就是天元十一月甲子朔旦冬至这一天,日月都多推算了一点。太阳一天运行一度,积累三百六十五度又四分之一度就完成一周天,这叫做一年。一年对应一个星次,如果太阳运行中没有空过一周天,那么年份就不会多推算星次。分析一下,一百七十一年的周期,也就是两个蔀加一个章,余数是六十三,这是自然数的规律。

数字是从极小的单位开始积累起来的,小的单位积累起来变成大的单位,大的单位积累起来就变成分寸。阴阳二气确定之后,日月才开始分开运行。最初运行产生分数,分数积累起来就变成度数。太阳一天运行一度,一年就运行完一周天。所以制定历法的人,各自有不同的度数算法,有的用九百四十,有的用八十一。算法有粗有细,产生两种不同的结果,但最终的结果都是一样的。日法,就是太阳每天运行的度数。太阳运行规律明确,运行有固定的节律,日法所包含的内容,广泛而没有止境。如果增减极微小的数值,都会造成很大的偏差,从这里可以看出,数字的推算不能有丝毫的差错。现在想要弥补平年闰年的失误,减少日法中的分数,恐怕会影响到历法的根本规律。用不同的方法推算日月运行的度数,最终的结果不一样,四个章的周期也推算不出朔日余数为一。虽然说《九道》可以调整推算的进退,但恐怕不足以弥补它的不足。而且推算历法的法则,是根据月球的阴晴圆缺和日月食来验证的,这非常重要。现在用减少六十三分的方法来制定历法,验证章和元年以来日食二十次,月食二十八次,与《四分历》相比,误差更大,用推算的结果互相比较,《四分历》反而更准确,而且更方便实用。

孝章皇帝对历法进行了仔细的校正,绘制了天文仪器和计时器,与天象相符,不能再采用其他的历法了。《文曜钩》说:“高辛氏受命于天,重黎制定历法。唐尧即位,羲和制定浑天仪。夏朝制定德政,昆吾氏推算星象。周朝改换纪年,苌弘负责天文历法。”《运斗枢》说:“常占官有专门的历法典籍,这是史书上记载清楚的。”《洪范五纪论》说:“民间也有黄帝时代的各种历法,但不如史官记载的历法准确。”从古到今,圣明的帝王,都参考羲和、常占官的意见,用精密的天文仪器来校正历法,解决大家的疑问,把历法珍藏在中书省,采用《四分历》的推算方法。光武皇帝多次下诏书,开始着手制定历法,孝明皇帝校对历法,孝章皇帝颁布历法。历经三代帝王,经过几十年的时间,经过验证,最终颁布实施。它的起始点追溯到天地开辟之初,它的算法是恢复了《四分历》的算法。应该像甲寅年的诏书那样去做。

准奏。

公元175年,也就是汉灵帝熹平四年,五官郎中冯光和沛县县令的属官陈晃上奏说:现在用的历法不对,所以益州才出现那么多叛乱和盗贼,接连不断地作乱。历法应该以甲寅年为起始年,而不是庚申年,那些天文图书里也没有把庚申年作为起始年的说法。现在用的历法是秦朝沿用周朝的起始年。负责天文历法的郎中郭香和刘固,他们故意编造谎言,请求用庚申年为起始年的历法,这简直是欺骗皇上,应该严惩! 二月初二,皇帝下令给三公九卿和儒学大家,让他们仔细讨论,务必找到正确的历法。让所有的大臣们在司徒府开会讨论。

议郎蔡邕发言说:

话说这历法啊,那可是个精细活儿,从古至今,改来改去,没个准儿。汉朝继承秦朝的历法,用的颛顼历,元是用乙卯年。一百零二年后,汉武帝才开始改用太初历,元是用丁丑年,用了整整一百八十九年。后来孝章帝又改用四分历,元是用庚申年。现在呢,光禄勋和太史令都觉得庚申年不对,甲寅年才对。查查历法史,黄帝、颛顼、夏、殷、周、鲁,这六家,个个都有自己的纪元。光禄勋和太史令说的那个殷历元,其实就是其中之一。其他的纪元虽然在图谶里没记载,但都是当时有效的历法,各有各的道理。

汉武帝用了丁丑年的太初历之后,这六家历法就乱成一锅粥了,谁都说谁不对。有个叫张寿王的太史令,就拿着甲寅年做文章,说汉朝的历法不对。结果他因为这事儿被弹劾,丢了官。可你看,太初历用着挺好,也没出什么岔子。所以说,就算不是图谶里说的那个纪元,只要当时好用就行。后来用了四分历,比太初历更精确,这说明新的历法也能管用。

延光元年,有个叫亶诵的中谒者也觉得四分历的庚申年不对,说应该用《命历序》里的甲寅年。这事儿还惊动了朝廷上下,大家一起讨论,最后还是没改。其实啊,日月星辰的运行,快慢不定,没必要非得一样。那些算历法的,都是根据当时的情况来算的,所以历法才会有古今之分。现在的历法推算不到古代,古代的历法也推算不到现在,这很正常。《元命苞》和《乾凿度》都说,从开天辟地到获麟,一共二百七十六万年;而《命历序》算的是从获麟到汉朝,一共是六十九年加二十三年,一共九十二年。汉朝元年是乙未年,推算到获麟那年,就是庚申年。再往前推,一直推到开天辟地,那元就是庚申年。虽然图谶里没写,但数字在那儿摆着呢。

可光禄勋和太史令却说,从开天辟地到获麟,一共是二百七十五万九千八百八十六年,从获麟到汉朝,是一百六十一岁,这跟前面算的差了一百一十四年。他们说要算得准,可这样一来,就和《乾凿度》、《元命苞》对不上了,获麟的时间也对不上号,跟历史记载也不符。

现在是正月癸亥朔,可是光、晃他们却说是乙丑朔。癸亥和乙丑这两个朔日,没有明确的记载能够让大家一起辨别,只能通过观察月亮盈亏、朔望来验证。可是光、晃历法是根据《考灵曜》来的,它里面记载的二十八宿度数和冬至日的位置,跟现在史官甘、石的旧文献不一样,根本没办法考证;用现在的浑天仪来观测天文,也和《考灵曜》对不上。如果光、晃他们能根据自己的方法,重新制作观测天象的仪器,来精确测量天体运行的度数,这样既能验证书上的记载,又能符合实际的天文现象,那就能取代甘、石历法,让其他历法都黯然失色,这才是应该用的历法。我们没问光、晃他们具体怎么算的,他们就只说这是图谶,说的东西我们根本不信。

元和二年二月甲寅,皇帝下诏说:“我听说古代圣明的君王,顺应天理,不违背天意,遵循天时。史官用太初历邓平的方法,计算冬至那天太阳在斗宿二十一度,可是历法却说在牵牛星附近,而且立春提前了一天,相当于把四分历的立春提前了四分之一,用这种历法来判案定罪,已经和实际的天象相违背了,用这种方法来求得太平盛世,实在太离谱了!现在我们改用《四分历》,这是遵从尧帝的旨意,也是顺应孔子的圣人之道,奉行天道的体现。”这就是开始使用《四分历》的庚申元年的诏书。诏书中大量引用《河图》、《洛书》的图谶来证明历法的正确性,这可不是史官自己私下想出来的。而光、晃却说这是香、固故意编造的谎言,违背了经文,简直是荒谬之极!

以前尧帝命令羲和观测日月星辰制定历法,舜帝沿用并完善了它,商汤、周武王革命之后,也都制定了符合当时情况的历法,这都是正确的做法,即使这样,他们也还会遇到水灾旱灾,并告诫大家要警惕“蛮夷猾夏,寇贼奸宄”。可是光、晃却说阴阳失调、奸臣盗贼都是因为元年的问题,这根本就是不合理的。元和二年采用庚申元,到现在已经九十二年了。而光、晃却说秦朝用的是取代周朝的元年,却不知道从秦朝算起,汉朝就改过三次元年,庚申元并不是一直沿用的。光、晃他们见识浅薄,只相信自己学到的东西,胡乱编造谎言欺骗人,真是罪过!至于改换朔日和元年,以前寿王的方法已经证明行不通了,大家也都不采用这种说法,元和年的诏书内容完整,意义明确,不是大臣们能够随意更改的。

太尉耽、司徒隗、司空训这三位大臣,因为光、晃俩人对朝廷不敬,就用“正鬼薪法”来弹劾他们。结果皇帝下令说,算了,别追究了。

《太初历》算出来的月食时间,好多次都不准。《四分历》沿用了《太初历》的方法,以河平癸巳年为起始年,用了五年。到了永元元年,天上七月份就出现了月食,可是按照《四分历》的推算,应该是八月份才对。第二年正月十二,有个叫蒙公乘宗绀的,上书说:“这个月十六号晚上月亮要食,可是历法上写的是二月。”到了十六号,果然跟宗绀说的一样。太史令觉得宗绀的推算很有用,就给他升了官,让他当了待诏。 甲辰日,皇帝下令用宗绀的方法来编历法。 这个历法用了五十六年。到了本初元年,天上是十二月发生的月食,可是历法上却说是第二年正月,这时候开始出现误差了。到了熹平三年,这二十九年的时间里,历法算错的月食就有十六次。

常山郡的长史刘洪,写了一本叫《七曜术》的书。甲辰日,皇帝让太史部的郎中刘固和舍人冯恂他们,学习研究一下刘洪的《七曜术》,并且重新编制一个叫《八元术》的历法,刘固他们还编了一个《月食术》,大家一起研究比较。刘固的算法跟《七曜术》差不多。关于月食的推算,大家都搞不清楚,比如,在己未年应该在四月发生月食,冯恂的算法说是三月,官方的历法说是五月。太官们对这些历法进行研究,最后选了一个比较准的来用。丁巳日,皇帝批准了。

到了第四年,宗绀的孙子宗诚上书说:“我爷爷的算法也需要修改了,今年十二月应该发生月食,可是官历上说是明年正月。”到了那一天,果然跟他说的那样。皇帝就封宗诚当了舍人。丙申日,皇帝下令采用宗诚的算法。

光和二年,是己未年。三月和五月都阴雨连绵,太史令修和部舍人张恂他们根据推算的结果,认为三月比较接近,四月比较远。最后决定采用四月份。于是奏请废除修的算法,采用张恂的算法。

三年后,修的哥哥修整前后几次上书说:“去年三月没有日食,应该用四月的数据。史官废除了修正确的算法,采用了恂不正确的算法。”修整上书给太史令,但是太史令却始终没有承认三月近四月远的说法。日食的推算,应该以实际观测为准,不用考虑远近。于是皇帝下诏书给太常寺:“你们要详细查阅记录,仔细衡量各种算法的优劣,验证它们的真伪。”

太常寺就派侍中韩说、博士蔡较、谷城门候刘洪、右郎中陈调到太常寺,再次校对记录,讨论有争议的问题。张恂和修分别陈述了自己的算法。张恂的算法以五千六百四十个月中有九百六十一次第日食为标准,然后进行除法和加减运算,推算建武年间以来的日食次数,共计三百二十七次,其中十五次有误差。根据官方以往的记录,天象观测到的日食次数是九十八次,和两种算法的结果都相符,但误差却达到了二千一百次。修的算法是以一百三十五个月中出现二十三次日食为标准,进行乘除运算,从建康以前减去四十一,建康以后减去三十五,因为这两段时间没有日食。张恂的算法修改了旧的算法,修的算法也在原来的基础上进行了减损,比较两者优劣,其实并没有明显的区别。双方都引用经书和天文典籍来证明自己的算法,但这些文字并没有什么实际意义,只是为了追求天象的准确性而已。

日月运行的规律,太阳沿着黄道运行,月亮沿着九条不同的轨道运行。用赤道仪测量,冬至时太阳距离北极点都是一百一十五度。太阳进入二十八宿时,赤道在斗宿二十一度,黄道在斗宿十九度。两条轨道相互交错,日月运行的轨迹,弯曲直线都有差异,从而产生了进退的变化。所以月亮运行到井宿、牛宿时,超过十四度;运行到角宿、娄宿时,超过十二度。这些都不是恒定的速度。由此可见,算法如果不准确就要修改,如果不适用就要放弃。天道精微奥妙,度数难以确定,算法多种多样,历法记录也不尽相同,没有验证就无法知道它的对错,没有出现偏差就无法知道它的失误。出现失误之后再修改,验证之后再采用,这叫做“允执其中”。现在修的算法并没有明显的错误,张恂的算法也没有特别准确的地方,因为没有验证就修改没有错误的算法,是为了将来找到正确的算法。修的算法,一百三十五个月二十三次日食,记载在书籍里,学者们一直沿用,实施时间也很长了。官府沿用这个算法,推算日月运行,时间很长也没有出现过大的错误,所以大家相信这个天文算法,只是沿用而不加以修改。张恂长期在候部工作,心思缜密,善于思考,能够熟练使用仪器,制定算法,推算过去,校对现在,也和实际观测到的日食次数相符。

但是,制定历法,推算节气,要谨慎对待,如同敬畏上天一样,应该遵循旧的章程,就像甲辰年和丙申年的诏书那样,以实际观测到的日食次数为标准。现在应该采用修的算法,放弃张恂的算法,史官要监督执行,以后如果有了验证结果,再实行新的算法,这样才能审慎地对待算法,才能顺应变化。太常寺根据韩说等人的意见上奏朝廷,皇帝同意了。张恂、修整、修都再次上书,张恂说不应该采用修的算法,修整说不应该再采用张恂的算法。因为刘洪的意见影响了这件事,此事又下交永安台复查,结果都不如张恂和修所说的那样。于是弹劾他们欺骗皇上。皇帝下诏,张恂和修各罚俸禄两个月赎罪。修整也正好被降职为左校两个月。最后采用了刘洪等人的意见,实行修的算法。

公元78年,万年县令王汉上交了一篇关于月食的注释。从公元7年到今年,一共九十三岁,合计一百九十六次月食;跟官方历法《河平历》公元7年(河平元年)的月食记录对不上,王汉以己巳年为历法的起始年。这件事交给了太史令去处理,太史令上奏说:“王汉的注释有两件事跟实际观测的月食不符,有二十九件事是把相同的现象说成不同的。” 然后朝廷就召来了谷城县的候补官员刘洪。

皇帝下令说:“以前郎中冯光、司徒掾陈晃都各自争论历法,议郎蔡邕也参与了修补和续写历法志。现在你刘洪去跟王汉一起研究,推算历法的起始年和闰余,仔细核对月食记录。如果王汉说的己巳年为起始年比较准确,有可靠的依据,你就认可王汉的观点;如果不行,你就直接驳斥他。”

刘洪上奏说:“如果按照王汉说的己巳年为起始年,那么《考灵曜》中说的旃蒙之年,就是乙卯年为起始年。这跟冯光、陈晃说的甲寅年为起始年互相矛盾。以此来推算天象制定历法,校正日月星辰的运行规律,现在看来过于粗略了。孔子在《春秋纬》中提到一件事却有两种说法,这说明历法的兴衰更迭,要随着天象的变化而调整。甲寅历在孔子时代是有效的;己巳历是颛顼时代制定的,秦朝沿用,汉朝初年也沿用,所以没有更改。到了元封年间,发现它不够精确,又改用了《太初历》,历法在三百多年间改动过很多次。甲寅历和己巳历虽然在文献中有所记载,但对具体年份记载比较模糊,所以学者们各执一词,导致校对历法时无法得到正确的结果。甲寅历的起始年天正元年,正月初一甲子日是冬至;七曜的起始位置在牛宿的初期。乙卯历的起始年人正元年,己巳年正月初一立春;日月星辰在太庙上空会合五度。比较这两个起始年,闰余相差一百五十二分之三,朔日相差三百四天,节气相差二十九天。由于难以验证哪个更准确,王汉也解释不清楚,只说祖上有记载而已。如果采用王汉的注释来制定历法,跟实际情况有二十九处不同,还有两处月食记录对不上。我认为王汉只是看到己巳年作为起始年的记载,就认为这是正确的,他不知道圣人制定历法有兴废更替的道理,史官也有根据天象制定历法的密法。甲寅历和己巳历以前都曾经使用过,后来因为不够精确而被废弃。河平历的计算方法粗略,史官已经废弃了,而王汉却以此来争论,这恐怕不是他的本意。即使他的说法有依据,也跟实际情况不符,计算结果也不够精确。他关于蔀数的说法,是术数家们都知道的常识,没有什么参考价值。” 于是,朝廷就让王汉回乡了。