历法
历法是根据天象(主要是日月)规律,计算时间(即年月日长度),以判断季节变化的法则。
历法的中心问题:年和月
制定历法所凭借的依据不外乎太阳和月亮的运动规律。日是最容易观测的确定一个时间间隔,凡经历过一个日升月落即为一日。这似乎是确定无疑的,但要为一日确定一个起点,却又并不容易。古人逐渐发现可以通过直立杆的投影来解决这一问题,将一天之内投影最短的时刻定为正午,这样两个正午之间的时刻就是一日。
连续观测正午时刻直立杆的投影长度,就能够发现它是周期循环,这一循环的发现导致“年”的产生。此外还导致最初两个节气的产生:人们将投影长度最短的那一天叫做一年的夏至,最长的那一天叫做一年的冬至。
对投影的观测实际是间接观测太阳,与之相比,月相的观测更加简单直接。月亮的盈亏也是一种周期循环,这导致“月”的产生。
现在我们知道,太阳直射点的变化周期,即一个回归年为365.2421897日,月亮绕地球运行的周期,即朔望月,大约29.530588日。二者都不是整数,且不能整除,使得一个回归年不能平摊成整数个朔望月。这导致太阴历法和太阳历法都有一定的缺陷。
太阳历和太阴历的缺陷
就太阴历而言,它以月相周期定月,12个朔望月为一年,这样一年约354或355日,这样每年会短缺11日左右。只要16个阴历年左右,就会差距到180多天,即半年左右,就会发生6月下雪、腊月天旱、冬夏倒置的毛病,对农业生产没有指导意义。太阴历的这种弊端之由来在于完全忽视了回归年,而回归年又是四季的依据。在文明开始之初,因为月亮便于观测,太阴历曾被广泛采用,但随着使用过程中的问题暴漏,逐渐被放弃。
就太阳历而言,它以回归周期定年,不依据月相,分一年为12个月,有大小月之分,这个“月”和朔望月完全无关。太阳历比太阴历问题少,它符合四季规律,但是月相的变化与月完全不能合拍。此外对于古人而言,回归年并不是整数日,这意味着随着年的累计,太阴历上的问题也会到来,只不过速度比较慢而已。
古埃及因为尼罗河泛滥的原因,非常重视天文学和历法的制定。他们在7千年前,已经把回归年定为365天。然而这个时间与真实的回归年相差0.24天,这意味着每100个回归年之后,历法上便少计24天,大约700多年后,就会出现与太阴历相同的冬夏颠倒的情况。这一情形需要再过700多年才能纠正。循环周期长达1461年。
连分数与闰年
连分数的意义在于把实数(如5.0989)变成纯粹的数学形式。与小数表示形式相比,连分数可以进行截断逼近。例如
把回归年数写成连分数形式
这里是前三次逼近结果,由此我们可以知道如何通过置闰的方式解决回归年周期问题。回归年取近似值$\frac{1}{4}$ 意味着每 4 年太阳历会比回归年少 1 天,因此要每4年置闰一天。这是第一步的近似。更精确的近似是$\frac{7}{29}$ ,即每 29 年太阳历会比回归年少 7 天,因此经过 29 个太阳历年后需要外加上 7 天之后才能开始下一回归年。对于第三个分数,就是每 33 年后需要加 8 天,也等于 99 年加 24 天。
如果取第一级截断近似,就是每 4 年一个闰年,闰年里将 2 月变为 29 日来增加一天。这个数值略大于回归年,会产生每年 0.008 天的差距,这样100年近似于1天,大约2万2千年之后进入冬夏颠倒的混乱期。这个误差人们还是不能忍受,于是要每过一百年减去 1 天来进行补偿,即百年不设闰。这样每年的差距实际只有 0.0002 天的差距,混乱周期扩大到百万年级别,可以认为是非常精确了。
这里还有最后一个问题:近似是 99 年加 24 天,实际采用百年不设闰,二者是有差别的。每隔 400 年,添加了天数为 24 4 天,这样差距为 0.002 天,仍然很大。所以设置*每 400 年置闰,差距变为 0.00031 天,接近 $\frac{8}{33}$ 的效果。
农历闰月
农历是一种阴阳历,年采用回归年,月采用朔望月,因此需要安排闰月来调整。公历则无此需要,因此公历的月不会与月相变化相吻合。
在一个回归年年,每年的月数是 12.36826, 写成连分数为
这里 $\frac{7}{19} = 0.36842$ 已经非常接近,每年会产生 0.00016 个月的差距。此即 19年7闰。
历史上的历法
公元前45年罗马皇帝儒略·凯撒在埃及天文学家协助下创立的儒略历,设置四年一闰。从前面的描述我们知道儒略历并不非常精确,4个回归年的零数积累在一起,为23时15分4秒,还不足一日,尚差44分56秒。由于累积误差随着时间越来越大,根据前面的推算,到 1582年改历那天,儒略历在1600年里产生大约 10 天的误差。
1582年罗马教皇格里高利十三世制订格里高利历,也叫公历。“四年一闰”每400年就将相差三日。为此,每400年必须少闰三次。设置97个闰年。公历亦称阳历,与中国传统农历(阴阳历)不同。
改历前后的历史事件和文件有造成混乱的可能。
中国历史上一共产生过102部历法,如夏历、商历、周历、西汉太初历、隋唐大衍历和皇极历等。汉代之前的历法就采用阴阳历,即“古六历”(黄帝、颛顼、夏、殷、周、鲁)中的《颛顼历》,以365又1/4日为一回归年,以29又499/940日为一朔望月, 19年中置7个闰月。由于这种古历计算不够精密,常出现月初朔日,但实际天空中却有圆满的月光;月中望日,夜晚却并没有月亮。为了改变这种不对照的现象, 司马迁主持制订《太初历》。
汉朝初年沿用秦朝的历法颛顼历,以农历的十月为一年之始,因历法与天象运行正朔失合,司马迁在公元前104年(汉武帝元封七年)上书,“言历纪坏废,宜改正朔”。汉武帝“乃诏迁用邓平所造八十一分律历,罢尤疏远者十七家”。并将元封七年改为太初元年。
《太初历》测算出一朔望月等于29又81分之43日,故又称为“81分律历”。以冬至所在之月为11月,改秦历以10月为岁首的错误,以正月为岁首,12月底为岁末,并首次将24节气订入该历法,与春种、秋收、夏忙、冬闲的农业节奏合拍,春生夏长,秋收冬藏,四季顺昌。落下闳在预见《太初历》不足之处曾指出:“日后八百岁,此历差一日,当有圣人定之。”(实际上仅一百余年即误差一日)。落下闳计算《太初历》即采用前述“连分数”的数学原理。
正朔
正朔是历法定年定月之基础。正者,岁之始也,朔者,月之始也。一年的第一个月称作正月,一月的第一日称作朔日。上古之时,计算历法与授时被认为是与上天沟通的重要形式,只有部落领袖和统治者才有权进行。甚至于直到清代,私习天文都被认为是有谋反之意。改年号与颁历法仍然是皇帝体现权力的重要手段。旧时历书称为皇历,盖因历书必由皇帝所颁。
因为正朔是天子权力象征,所以在王朝更迭之际,奉何正朔也同时表明了政治取向。例如,孔子在《春秋》中,每年之初必称“某年春王正月”,《公羊传》:“春者何?岁之始也。王者孰谓?谓文王也。曷为先言王而后言正月?王正月也。何言乎王正月?大一统也。”也就是说,鲁尊周文王所定之正朔,以示鲁忠于周。而因鲁桓公弑君而立,桓公三年至八年,及十一年至十七年,《春秋》只称“某年春正月”,曰桓无王也。
秦历十月开始一年, 自汉武帝正式使用年号,颁布太初历,改用夏正以后,后世两千多年的帝王一般只改年号而不改正朔,只有武则天,太平天国等改正朔。很多文献都称,今日所用之华夏历法就是夏历,但现行华夏历法已有演变,事实上今日之历法只是沿用了夏正,而没有用夏朔。夏以天明为朔,商以鸡鸣为朔,周以夜半为朔,体现了计时的进步;
节气
中国古代利用土圭实测日晷,将每年日影最长定为“日至”(又称日长至,即太极图中四象的太阴、长至、冬至),日影最短为“日短至”(又称短至、夏至)。在春秋两季各有一日的昼夜时间长短相等,便定为“春分”和“秋分”,人类各民族多有此四。在商朝时只有四个节气(四象,即四季),到了周朝时发展到了八个(八卦),到秦汉年间,二十四节气已完全确立。公元前104年,由邓平等制定的《太初历》,正式将二十四节气订于历法,明确了二十四节气的天文位置。
二十四节气每一个分别相应于太阳在黄道上每运动15°所到达之位置。二十四节气又分为12个节气和12个中气,一一相间。二十四节气反映了太阳周年视运动,所以其西历日期近乎固定,上半年的节气在6日,中气在21日,下半年的节气在8日,中气在23日,前后不差1~2日。二十四节气的命名反应了季节和气候的变化。立春、春分、立夏、夏至、立秋、秋分、立冬、冬至,又称八位,是区分公转运动对于地球影响的八个关键节点;
1 | 春雨惊春清谷天; |