汉初最开始是使用的秦代的颛顼历,属于四分历中的一种,颛顼历是秦始皇统一六国后颁行全国,以十月一日为元朔。自秦始皇二十六年至汉武帝太初元年共行117年。
四分历建立在一个原则之上,也就是“十九年七闰,且回归年365又1/4日”,那么由这个数据,就能推导出一月的日数:365.25*19/235=29又499/940日。这个是四分历时期,一直沿用,且不可变更的数据。一直到了南北朝的祖冲之时期,才改进了回归年和朔望月日数。
而汉初由于之前的颛顼历使用起来,觉得不太准,司马迁言:历纪坏废,宜改正朔。再加上此时又碰到一个“朔旦冬至”日子,史书所记载的“十一月甲子朔旦冬至”,公元前的104年12月25日:
这个日子特殊在哪?《太初历》的章法就是以这个日子为基准。
十九年为一章,四章为一蔀(76年),二十蔀为一纪(1520年),三纪为一元(4560年)
上面数据怎么来的?
首先,《太初历》在既定一个回归年365又1/4日的基础上,人为将月份修改成29又43/81日,你可以从玄学或者易理的多个层面,找出81这个数字的理由来,比如音律,黄钟数,9*9=81,九九归一……但是,这个数据的制定,比四分历一个朔望月的“29又499/940日”更不准。
在确定朔望月日数之后,就以基准点为主,日月五星从基准点出发,朔旦冬至,初一又正好是冬至点,那么历经19个回归年,365.25*19=6939.75日,又回到这个时间点,比如下图:
历经19年,又回到了朔旦冬至,所以定“十九年为一章”。
但是有个问题,观察上面的图,时间差了点,一个是晚上0点整,一个是下午6点,当然,0点的换气冬至,是我方便操作天文软件演示而设置的,实际上计算的时候,不一定是0点。
总而言之,19年之后,两者之间时间差了6小时,于是便乘4,4*6=24,设置“四章为一蔀”,19*4=76年。
但这样又出现一个问题,“四章”之后,此时第一日不再是甲子日,而相差一日。第一蔀甲子蔀,第二蔀癸卯蔀,第三蔀壬午蔀,第四蔀辛酉蔀,第五蔀庚子蔀,第六蔀己卯蔀……20蔀重回甲子蔀,于是设置“二十蔀为一纪”,20*76=1520年。到此时,假定朔旦冬至日,又回到原来的“十一月甲子朔旦冬至”时间点。当然后面可以再扩充下,一纪再乘3,扩充到一元。
为什么是“假定”?
因为上述都是理想状态,日地月的运行,并非是均衡匀速的,所以只能是“假定”。那么只能说,以上周期计算,是大体理想状态下的规律。用在预测中不错,是完备的模型。但要应用在丝毫不能差的历法当中,还得改。
于是后世祖冲之,李淳风等人,针对上述基于“十九年七闰”的章法周期,制定了一个“破章法”。
1、破十九年七闰的规则设置
2、制定和考虑岁差
3、定交点月日数
不过,在历法革新之前,总会有阻碍革新的保守势力,祖冲之时代,保守派戴法兴和祖冲之辩论,对这三项改进都加以反对,理由是古制不可革。祖冲之反驳说:天上的道在变,人间的道也在变,说古制不可革是欺人之谈。祖冲之还指出戴法兴连当时天文学上最起码的常识都不知道,把他的无知和顽固不化狠狠挖苦了一番。