论文部分内容阅读
如今说起历法,许多年轻人首先想到的就是无处不在的日历表。每当我们解锁口袋里的手机,或者掀开桌面上的笔记本电脑,或者打开家里的电视机,甚至是观看公共场所的LED显示屏时,日历都会随时出现在我们的眼前,不厌其烦地提醒着我们今天是公元哪年哪月哪日。想不看都不行。这种无处不在的电子日历甚至使我们渐渐淡忘了我们的先辈是如何记录时光流转的。你们肯定还记得自己的爷爷奶奶通过收看《新闻联播》来了解时间的日子。可即便是中央电视台也不过是1958年才开播的,在此之前中国人不怎么看电视,只能通过收听收音机在整点时刻报时的方式来校准表的指针。然而,就算是人类广播报时的历史也不超过100年。在那之前呢?那时候,有的人家里用的是新表,上满弦自然走得快些,有的人家里摆的是旧表,或者忘记了按时上弦,自然走得慢些。因此不难想象,那个时候各家各户的时间都不太一样,中间差个七八分钟算是正常。至于要了解今夕何夕的问题,过去的人往往会采用一种简单而粗暴的办法:在每年年初的时候买一本厚厚的“皇历”,过一天撕一页。看着墙上的“皇历”由厚变薄,直到最后一页也被撕掉的时候,除夕夜就到了。就是在今天,许多老人的家里还是会挂一本老皇历,保持着过一天撕一页的旧习惯。
实际上历法是农业时代的产物,农业生产须遵循一定的物候规律,而掌控物候规律的则是太阳、地球和月亮的运行法则。因此,历法的制定从一开始就与天文学息息相关。只是到了信息时代,许多历法中的重要概念慢慢与人们的日常生活脱节,以至于变得少有人问津。举例来说,相较于今天是几月几日,我们似乎更关心今天是星期几,因为这牵扯到今天是不是开会,明天要不要交报表,还有几天才是周末等一系列问题。至于今天是农历中的什么节气这类问题,更是没什么人关心了。
其实在中国古代,也有类似于今天是星期几的循环历法,只是中国人采用的循环天数不是7天,而是60天。此即干支纪日法。中国人喜欢将10个天干——甲乙丙丁午己庚辛壬癸,与12个地支——子丑寅卯辰巳午未申酉戌亥,依次相配,组合成60个基本单位,首尾相连,不断循环着来记录日子。这种循环历法虽然简单粗暴,却十分有效。有证据表明,至少自殷商以来,中国人就在使用干支纪日法,且一直延续至今,中间没有一日间断。这意味着你可以依据古文献中记载的某件大事的干支日,再结合其他年代信息,来推定发生那件事的日子与今天相距的天数。这是一种非常神奇的年代推断法,它不需要考虑某个朝代推行的历法具体是怎样的。因为通常来讲,受限于古代天文观测的精度和统治者的需要,不同朝代的历法不尽相同,尤其是殷商、春秋和战国时代,每个诸侯国的历法都不统一。夏商周断代工程中最关键的“武王伐纣”事件的日期推定,就利用了干支纪日法的上述特征。最后的结论是公元前1044年1月9日,周武王在商郊牧野大败商纣王帝辛,开创了周朝800年基业。有了这个结论,中国历史的确切年代上限就能从《史记》记载的公元前841年的“国人暴动”事件再上推450年。
当然,干支纪日法对中国人来说从来都不是主流历法,因为它与农业生产和天时物候都没有直接的联系,不方便日常生活生产。在今天,中国的传统历法常常被称为阴历或者农历。不过,前一个名字根本就是个错误,后一个名字则带有浓浓的乡土气息,使许多人误以为它只与农业生产有关。实际上,只有那些单纯考虑朔望月周期的历法才是严格意义上的阴历。最典型的阴历就是盛行于伊斯兰国家的回历。在回历中,一年被简单地定义为12个朔望月,每个朔望月所包含的日数从29日至30日不等。如此一来,回历的一年只有354日或355日。只需不到20年的时间,回历的开斋节就可以从隆冬时节“漂移”至盛夏。而中国传统历法中的岁首,也就是春节,只会出现在公历的1月或2月。何以如此?这便要归功于中国传统历法对回归年和朔望月的调和机制。
其实,中国的农历是一种非常先进的阴阳历。所谓阴阳历,就是一种能够同时调和回归年和朔望月的先进历法。在这里,读者可以将回归年简单地理解为地球围绕太阳运行的周期。更精确地讲,它指的是太阳中心在黄道上连续两次通过春分点的时间间隔。由于岁差的存在,春分点本身相对于背景恒星还有一个缓慢的退行,因此,回归年比地球真正围绕太阳一周所经历的恒星年略短(二者相差约20分24秒)。至于朔望月,顾名思义它指的是月亮的月相从一个新月(或曰朔)到下一个新月的时间间隔。现代天文学观测表明,一个回归年的平均长度约等于365.2422日,一个朔望月的长度约等于29.5306日,二者都是非常零碎的小数。而年、月、日的数目只能是整数。如何用这三组整数所构成的有理数去逼近以上两个无理数,就成了历法制定者所要面临的首要问题。事实上,根据日本天文学家新城新藏的考证,至少在春秋晚期的时候,中国就已经摸索出了一套成熟而巧妙的阴阳历调和方案,即通过“置闰月”的办法来阻止岁首在阳历中的逐年“漂移”。
试用回归年的日数除以朔望月的日数,便可算得一个回归年中包含的朔望月数目,约为12.36826个月,除了整数部分的12个月以外还余有一个小数部分,回历开斋节的“漂移”正源于此。中国人发现这个小数接近7/19,其数值约为0.36842,二者的前三位有效数字是相同的。这意味着只需每19年置7个闰月就能使回归年和朔望月精确地调和在一起。在西方,古希腊天文学家默冬于公元前432年首次发现这种置闰法,并在当年的奥林匹克运动会上公之于众,因而这种置闰法也被称为“默冬章”。
接下来的问题就是如何在19年的周期里安排这7个闰月。东西方的古文明在这一点上分道扬镳。最早的美索不达米亚文明采用巴比伦历,国王会根据情况随机宣布置闰月,因而置闰情况混乱。犹太人使用的犹太历置闰方法相对简单,他们将春分日视为太阳年节点,规定春分日所在的朔望月为每年的第一个月,若不满足上述情况,就在上年的岁末安插一个闰月。中国的置闰方法稍微复杂一些,其中杂糅了中国独特的二十四节气系统,相对来讲是一种比较科学的置闰法。 中国自古便是一个农业大国,每年的农业生产都是统治者最关注的国之大事。前面说过,农业生产须遵循一定的天时物候,而天时物候是依据四时来的。太阳在天空中的高度,或者说太阳在黄道上的位置,直接影响了地球高空大气的环流走向,因而也就间接决定了四时的变化。中国古代的劳动人民从自然界的千变万化中精心挑选了24个最具代表性的物候事件,编成二十四节气,并将其同阴阳历法相结合指导农业生产。这一点十分鲜明地体现在中国最早的一本农事历书《夏小正》里。据考证,《夏小正》成书于殷末周初,也有春秋战国一说,撰者无考。书中还保留着将一年分为十个月的上古历法。《夏小正》主要记载了每个月独有的物候、气象、星象和有关的重大政事。这是中国人最早的观象授时知识的结集,也是如今二十四节气系统的前身。到了秦汉时期,二十四节气系统已完全确立。为了方便记忆,中国民间曾创作了数不清的、风格各异的节气歌。笔者小时候从爷爷那里学到了如下版本的七言节气歌,特录于此与读者分享:
春雨惊春清谷天,夏满芒夏暑相连。
秋处露秋寒霜降,冬雪雪冬小大寒。
历史上,二十四节气曾有过两种不同的划分方法。一种是通过将黄道二十四等分的办法来决定各节气的精确位置。其中,春分节气定在黄道与天赤道相交的升交点——春分点——上;秋分节气定在黄道与天赤道相交的降交点——秋分点——上。如此得到的二十四节气系统称为定气。这也是今天普遍采用的节气划分法。而中国古代普遍采用的节气划分法叫作平气,也就是先通过测定正午圭表的影长,来确定哪一天是冬至日(影长最长的那天为冬至日)。之后以冬至点为基点,将一个回归年等分为二十四段,每段15.2184日,定为一个节气。相邻两个节气包含的天数为30.4368日,一个节气一个中气,加起来比一个朔望月长了0.9062日。如此一来,节气和中气就会在相应的农历月份中缓慢“漂移”,直至出现某个月没有中气的情况。何以会如此呢?这往往是由于这个节气恰好“漂移”到了相应朔望月的中间,它的前一个中气出现在了前一个朔望月的最末一天,后一个中气出现在了后一个朔望月的第一天。中国的农历规定,像这样缺乏中气的月份就要被置闰,置闰的月份赶到哪个月就闰哪个月。在这种置闰规则下,二十四节气就相当于阳历回归年的一套标尺系统,实时检验着农历朔望月相对于回归年的偏移情况,一旦达到某个限度便立即置闰。从2016年的今天算起,下一轮农历闰月发生于2017年7月23日的闰六月,因为那一轮的朔望月周期里只有一个立秋节气而没有中气。上一轮农历闰月发生于2014年10月24日的闰九月,因为那一轮的朔望月周期里只有一个立冬节气而没有中气。包含了闰月年份的次年,过春节都会比较晚,比如2015年的春节和2018年的春节。这与我们的日常经验是吻合的。对此,读者可以通过翻看手机里的日历软件来熟悉农历的这一置闰规则。
如前所述,如今我们采用的二十四节气系统是定气。考虑到太阳在黄道上运动的不均匀性,阳历1月的时候地球过近日点,绕日运动速度较快,相应地,太阳在黄道上的速度也快。反之, 在阳历7月的时候, 太阳在黄道上的运动速度较慢。这种效应导致农历中十二个月份被置闰的可能性大不相同。一般来说,农历三月、四月、五月、六月和七月被置闰的可能性最大,二月和八月次之,其他月份被置闰的可能性均为百年一遇。腊月被置闰的频率最低,为千年一遇。2014年的闰九月曾被网络媒体大肆炒作,原因即在于此。顺便提一句,中国农历中十九年七闰的规则还有一个小小的应用,那就是判定一个人的公历生日与农历生日何时重合的问题。由于回归年和朔望月的日期组合每19年轮回一次,据此不难算出,只要一个人的公历生日不是2月29日,同时他的农历生日不在某个闰月内,那么只有当他的年龄是19的倍数(即19岁、38岁、57岁、76岁、95岁等)时,他的公历生日跟农历生日才会重合。若他的公历生日恰巧赶上了闰年的2月29日,那几乎可以肯定,出现上述重合的日子只能是在他7 6岁高龄的时候(也有少数例外情况。为什么?读者不妨思考一下)。若他的农历生日恰巧落在了某个闰月中,那情况就变得复杂了。据此得出的循环周期很可能远远超出人类的正常寿命。
说完了农历,我们顺带说一说现行的公历。公历又称格里高利历,是一种最初盛行于西方国家的太阳历,或者简称阳历。1949年新中国成立以后,公历正式成为中国的官方纪年法。与前述的阴历正好相反,阳历只在历法中考虑回归年与地球自转的比例关系,其中的月份概念只是象征性地存在,而与实际的月相完全脱节。由于某些历史遗留问题,现行公历中不同月份的日数安排极为混乱。为了记忆它们,我们从小就需要背诵“一三五七八十腊,三十一天永不差”这样的荒唐口诀。不熟悉历法的读者很容易将儒略历与格里高利历混为一谈。儒略历最早由罗马共和国的统治者——尤里乌斯·恺撒于公元前45年正式颁布施行。最初,儒略历将一个回归年划分为12个月,单数月为大月,有31天;双数月为小月,有30天。其中2月是个例外。儒略历规定平年2月是29天,闰年30天,置闰方法为四年一闰。如此一来,儒略历的一个回归年就包含了365.25日,比准确值多出11分钟,400年里要多出3日还多。等到1582年教皇格里高利十三世的时候,儒略历中的春分日比实际的天文观测整整滞后了10天。为了弥补儒略历与天文观测的错位,教皇格里高利十三世规定:当年10月4日之后直接跳到10月15日,而星期序号仍然连贯。为了防止类似的误差继续积累,又附加了一条置闰规则,即当年份为整数世纪的时候需整除400方为闰年。例如公元2000年是闰年,而公元1900年就不再是闰年。此即现行的公历版本。如此一来,公历的置闰法从简单的四年一闰改进为四百年九十七闰,二者相除所得的小数为0.2425,与回归年的小数部分有三位有效数字相同。现行公历需要3000多年才会有一日的误差出现,已经达到了比较高的精度。不过,这滞后的一日终究还是会到来,届时将如何调整,就留待后人思考了。
实际上历法是农业时代的产物,农业生产须遵循一定的物候规律,而掌控物候规律的则是太阳、地球和月亮的运行法则。因此,历法的制定从一开始就与天文学息息相关。只是到了信息时代,许多历法中的重要概念慢慢与人们的日常生活脱节,以至于变得少有人问津。举例来说,相较于今天是几月几日,我们似乎更关心今天是星期几,因为这牵扯到今天是不是开会,明天要不要交报表,还有几天才是周末等一系列问题。至于今天是农历中的什么节气这类问题,更是没什么人关心了。
其实在中国古代,也有类似于今天是星期几的循环历法,只是中国人采用的循环天数不是7天,而是60天。此即干支纪日法。中国人喜欢将10个天干——甲乙丙丁午己庚辛壬癸,与12个地支——子丑寅卯辰巳午未申酉戌亥,依次相配,组合成60个基本单位,首尾相连,不断循环着来记录日子。这种循环历法虽然简单粗暴,却十分有效。有证据表明,至少自殷商以来,中国人就在使用干支纪日法,且一直延续至今,中间没有一日间断。这意味着你可以依据古文献中记载的某件大事的干支日,再结合其他年代信息,来推定发生那件事的日子与今天相距的天数。这是一种非常神奇的年代推断法,它不需要考虑某个朝代推行的历法具体是怎样的。因为通常来讲,受限于古代天文观测的精度和统治者的需要,不同朝代的历法不尽相同,尤其是殷商、春秋和战国时代,每个诸侯国的历法都不统一。夏商周断代工程中最关键的“武王伐纣”事件的日期推定,就利用了干支纪日法的上述特征。最后的结论是公元前1044年1月9日,周武王在商郊牧野大败商纣王帝辛,开创了周朝800年基业。有了这个结论,中国历史的确切年代上限就能从《史记》记载的公元前841年的“国人暴动”事件再上推450年。
当然,干支纪日法对中国人来说从来都不是主流历法,因为它与农业生产和天时物候都没有直接的联系,不方便日常生活生产。在今天,中国的传统历法常常被称为阴历或者农历。不过,前一个名字根本就是个错误,后一个名字则带有浓浓的乡土气息,使许多人误以为它只与农业生产有关。实际上,只有那些单纯考虑朔望月周期的历法才是严格意义上的阴历。最典型的阴历就是盛行于伊斯兰国家的回历。在回历中,一年被简单地定义为12个朔望月,每个朔望月所包含的日数从29日至30日不等。如此一来,回历的一年只有354日或355日。只需不到20年的时间,回历的开斋节就可以从隆冬时节“漂移”至盛夏。而中国传统历法中的岁首,也就是春节,只会出现在公历的1月或2月。何以如此?这便要归功于中国传统历法对回归年和朔望月的调和机制。
其实,中国的农历是一种非常先进的阴阳历。所谓阴阳历,就是一种能够同时调和回归年和朔望月的先进历法。在这里,读者可以将回归年简单地理解为地球围绕太阳运行的周期。更精确地讲,它指的是太阳中心在黄道上连续两次通过春分点的时间间隔。由于岁差的存在,春分点本身相对于背景恒星还有一个缓慢的退行,因此,回归年比地球真正围绕太阳一周所经历的恒星年略短(二者相差约20分24秒)。至于朔望月,顾名思义它指的是月亮的月相从一个新月(或曰朔)到下一个新月的时间间隔。现代天文学观测表明,一个回归年的平均长度约等于365.2422日,一个朔望月的长度约等于29.5306日,二者都是非常零碎的小数。而年、月、日的数目只能是整数。如何用这三组整数所构成的有理数去逼近以上两个无理数,就成了历法制定者所要面临的首要问题。事实上,根据日本天文学家新城新藏的考证,至少在春秋晚期的时候,中国就已经摸索出了一套成熟而巧妙的阴阳历调和方案,即通过“置闰月”的办法来阻止岁首在阳历中的逐年“漂移”。
试用回归年的日数除以朔望月的日数,便可算得一个回归年中包含的朔望月数目,约为12.36826个月,除了整数部分的12个月以外还余有一个小数部分,回历开斋节的“漂移”正源于此。中国人发现这个小数接近7/19,其数值约为0.36842,二者的前三位有效数字是相同的。这意味着只需每19年置7个闰月就能使回归年和朔望月精确地调和在一起。在西方,古希腊天文学家默冬于公元前432年首次发现这种置闰法,并在当年的奥林匹克运动会上公之于众,因而这种置闰法也被称为“默冬章”。
接下来的问题就是如何在19年的周期里安排这7个闰月。东西方的古文明在这一点上分道扬镳。最早的美索不达米亚文明采用巴比伦历,国王会根据情况随机宣布置闰月,因而置闰情况混乱。犹太人使用的犹太历置闰方法相对简单,他们将春分日视为太阳年节点,规定春分日所在的朔望月为每年的第一个月,若不满足上述情况,就在上年的岁末安插一个闰月。中国的置闰方法稍微复杂一些,其中杂糅了中国独特的二十四节气系统,相对来讲是一种比较科学的置闰法。 中国自古便是一个农业大国,每年的农业生产都是统治者最关注的国之大事。前面说过,农业生产须遵循一定的天时物候,而天时物候是依据四时来的。太阳在天空中的高度,或者说太阳在黄道上的位置,直接影响了地球高空大气的环流走向,因而也就间接决定了四时的变化。中国古代的劳动人民从自然界的千变万化中精心挑选了24个最具代表性的物候事件,编成二十四节气,并将其同阴阳历法相结合指导农业生产。这一点十分鲜明地体现在中国最早的一本农事历书《夏小正》里。据考证,《夏小正》成书于殷末周初,也有春秋战国一说,撰者无考。书中还保留着将一年分为十个月的上古历法。《夏小正》主要记载了每个月独有的物候、气象、星象和有关的重大政事。这是中国人最早的观象授时知识的结集,也是如今二十四节气系统的前身。到了秦汉时期,二十四节气系统已完全确立。为了方便记忆,中国民间曾创作了数不清的、风格各异的节气歌。笔者小时候从爷爷那里学到了如下版本的七言节气歌,特录于此与读者分享:
春雨惊春清谷天,夏满芒夏暑相连。
秋处露秋寒霜降,冬雪雪冬小大寒。
历史上,二十四节气曾有过两种不同的划分方法。一种是通过将黄道二十四等分的办法来决定各节气的精确位置。其中,春分节气定在黄道与天赤道相交的升交点——春分点——上;秋分节气定在黄道与天赤道相交的降交点——秋分点——上。如此得到的二十四节气系统称为定气。这也是今天普遍采用的节气划分法。而中国古代普遍采用的节气划分法叫作平气,也就是先通过测定正午圭表的影长,来确定哪一天是冬至日(影长最长的那天为冬至日)。之后以冬至点为基点,将一个回归年等分为二十四段,每段15.2184日,定为一个节气。相邻两个节气包含的天数为30.4368日,一个节气一个中气,加起来比一个朔望月长了0.9062日。如此一来,节气和中气就会在相应的农历月份中缓慢“漂移”,直至出现某个月没有中气的情况。何以会如此呢?这往往是由于这个节气恰好“漂移”到了相应朔望月的中间,它的前一个中气出现在了前一个朔望月的最末一天,后一个中气出现在了后一个朔望月的第一天。中国的农历规定,像这样缺乏中气的月份就要被置闰,置闰的月份赶到哪个月就闰哪个月。在这种置闰规则下,二十四节气就相当于阳历回归年的一套标尺系统,实时检验着农历朔望月相对于回归年的偏移情况,一旦达到某个限度便立即置闰。从2016年的今天算起,下一轮农历闰月发生于2017年7月23日的闰六月,因为那一轮的朔望月周期里只有一个立秋节气而没有中气。上一轮农历闰月发生于2014年10月24日的闰九月,因为那一轮的朔望月周期里只有一个立冬节气而没有中气。包含了闰月年份的次年,过春节都会比较晚,比如2015年的春节和2018年的春节。这与我们的日常经验是吻合的。对此,读者可以通过翻看手机里的日历软件来熟悉农历的这一置闰规则。
如前所述,如今我们采用的二十四节气系统是定气。考虑到太阳在黄道上运动的不均匀性,阳历1月的时候地球过近日点,绕日运动速度较快,相应地,太阳在黄道上的速度也快。反之, 在阳历7月的时候, 太阳在黄道上的运动速度较慢。这种效应导致农历中十二个月份被置闰的可能性大不相同。一般来说,农历三月、四月、五月、六月和七月被置闰的可能性最大,二月和八月次之,其他月份被置闰的可能性均为百年一遇。腊月被置闰的频率最低,为千年一遇。2014年的闰九月曾被网络媒体大肆炒作,原因即在于此。顺便提一句,中国农历中十九年七闰的规则还有一个小小的应用,那就是判定一个人的公历生日与农历生日何时重合的问题。由于回归年和朔望月的日期组合每19年轮回一次,据此不难算出,只要一个人的公历生日不是2月29日,同时他的农历生日不在某个闰月内,那么只有当他的年龄是19的倍数(即19岁、38岁、57岁、76岁、95岁等)时,他的公历生日跟农历生日才会重合。若他的公历生日恰巧赶上了闰年的2月29日,那几乎可以肯定,出现上述重合的日子只能是在他7 6岁高龄的时候(也有少数例外情况。为什么?读者不妨思考一下)。若他的农历生日恰巧落在了某个闰月中,那情况就变得复杂了。据此得出的循环周期很可能远远超出人类的正常寿命。
说完了农历,我们顺带说一说现行的公历。公历又称格里高利历,是一种最初盛行于西方国家的太阳历,或者简称阳历。1949年新中国成立以后,公历正式成为中国的官方纪年法。与前述的阴历正好相反,阳历只在历法中考虑回归年与地球自转的比例关系,其中的月份概念只是象征性地存在,而与实际的月相完全脱节。由于某些历史遗留问题,现行公历中不同月份的日数安排极为混乱。为了记忆它们,我们从小就需要背诵“一三五七八十腊,三十一天永不差”这样的荒唐口诀。不熟悉历法的读者很容易将儒略历与格里高利历混为一谈。儒略历最早由罗马共和国的统治者——尤里乌斯·恺撒于公元前45年正式颁布施行。最初,儒略历将一个回归年划分为12个月,单数月为大月,有31天;双数月为小月,有30天。其中2月是个例外。儒略历规定平年2月是29天,闰年30天,置闰方法为四年一闰。如此一来,儒略历的一个回归年就包含了365.25日,比准确值多出11分钟,400年里要多出3日还多。等到1582年教皇格里高利十三世的时候,儒略历中的春分日比实际的天文观测整整滞后了10天。为了弥补儒略历与天文观测的错位,教皇格里高利十三世规定:当年10月4日之后直接跳到10月15日,而星期序号仍然连贯。为了防止类似的误差继续积累,又附加了一条置闰规则,即当年份为整数世纪的时候需整除400方为闰年。例如公元2000年是闰年,而公元1900年就不再是闰年。此即现行的公历版本。如此一来,公历的置闰法从简单的四年一闰改进为四百年九十七闰,二者相除所得的小数为0.2425,与回归年的小数部分有三位有效数字相同。现行公历需要3000多年才会有一日的误差出现,已经达到了比较高的精度。不过,这滞后的一日终究还是会到来,届时将如何调整,就留待后人思考了。