Skip to content

Latest commit

 

History

History
240 lines (163 loc) · 13.7 KB

BKGINFO.rdoc

File metadata and controls

240 lines (163 loc) · 13.7 KB

历法简介

(声明:以下内容都是我在网上查到看到的,未必准确,尤其是农历历算中涉及干支的部分。如果有哪位大拿看到并发现错误,欢迎指正。)

所谓历法,就是通过安排年、月、日的关系,为时间建立标记的方法。

人类历史上使用过的历法大体可以分为三类:仅以太阳运动为依据的历法称之为阳历或太阳历,如目前世界通行的公历;仅以月亮运动为依据的历法称之为阴历或太阴历,如伊斯兰教国家使用的回历;最后一种同时考虑了太阳和月亮运动规律的历法称之为阴阳历,如我国的农历。

基本概念

节、气

我们以观察者的角度假设太阳绕着地球转,那么黄道即为太阳一年当中在天球上的视路径。黄道与赤道并非平行,而是有一个夹角(即黄赤交角,约为23度26分左右),这就造成了太阳的视运动轨迹离赤道平面有远有近。黄道与赤道相交时的两个点,也就是太阳离地球最近的两个点称之为春分、秋分两分点,最远的两个点则称之为夏至、冬至两至点。

以春分点为0度自西向东到360度,即为黄道经度。将黄道划分为24等分,每等分15度,太阳通过等分点的时刻,也就是对应节气的时刻。

以下是24节气对应的黄道经度:

  • 立春:315;雨水:330;惊蛰:345;春分: 0;清明: 15;谷雨: 30;

  • 立夏: 45;小满: 60;芒种: 75;夏至: 90;小暑:105;大暑:120;

  • 立秋:135;处暑:150;白露:165;秋分:180;寒露:195;霜降:210;

  • 立冬:225;小雪:240;大雪:255;冬至:270;小寒:285;大寒:300。

以上奇数经度的为“节气”(minor solar terms),偶数经度的为“中气”(major solar terms),合起来才是我们日常生活中统称的节气(solar terms)。

节气只跟太阳运动有关,因此包含节气的日期在公历中也就相对固定,于是才有了24节气歌中“上半年是六二一,下半年是八二三”几句。

回归年

太阳从黄道上的某一个点绕天球一圈又回到同一个点所经历的时间,即称之为一个回归年。

一回归年的长度约为365.2422天,比公历平年的365天多了约不到6个小时。

朔望月

在月球绕着地球运行的过程中,当月球位于地球和太阳之间时,我们只能在夜空中看到月球很小的一部分,这时的月相称之为朔月或新月。当地球位于太阳和月亮之间时,我们能在夜空中看到整个月球被太阳直射的部分,这时的月相称之为望月或满月。而当日月联线和地月联线为直角时,我们正好可以看到月球直射部分的一半,这时的月相称之为弦月。

两朔或两望之间就是一个完整的月相更替周期,也就是朔望月。一个朔望月的长度约为29.53天。

平太阳

由于黄道是一个椭圆形,太阳在黄道上的周年视运动的速度并不恒定均匀。为了某些时候计算方便,美国天文学家纽康提出了“平太阳”的概念。平太阳是一个假想的天体,它每年和真太阳同时从春分点出发,在天赤道上从西向东匀速运行,这个速度相当于真太阳在黄道上运行的平均速度,最后和真太阳同时回到春分点。

在古代农历的历算中也有类似于平太阳的概念,称为平气和平朔。平气是指将一个回归年的时间长度平均分配来确定节气,而平朔则使用朔望月的平均长度来界定月份。

儒略日

儒略日,或称为儒略日数,虽然也是一种历法,但却可以说跟下文将要提到的儒略历完全无关。该数是指从公元前4713年(因为有计算公元0年,所以天文学上记为-4712年)1月1日世界协调时中午12点所经过的天数,不纪月不纪年,通常为天文学所采用,也可用于把不同历法的年表统一起来。

公历简介

现行的公历实际的正式名称应该是“格里高利历”,又更早实行的儒略历改革而来。

儒略历由儒略·凯撒于公元前46年1月1日颁布实施。该历法一年分12个月,单数月31天,偶数月30天。四年一闰,闰年在2月底增加一天。

(另有资料提到最初的儒略历是三年一闰,改为四年一闰,并且从2月抽一天出来加到8月的是凯撒继承者屋大维。还有一些资料说,最初的儒略历就已经规定了四年一闰,只是“每隔三年一润”被误解为“每三年一闰”,因此屋大维并没有对儒略历作出过实质性的修正。两个说法都没有在Wikipedia上并没有体现出来。)

儒略历的年平均长度为365.25天,比一个回归年的长度365.2422天要长,长期积累下来误差越来越大。最终于1582年被罗马教皇格里高利十三世所改革,变为格里历。

格里历与儒略历唯一的不同就是置闰方法。同样是四年一闰,但所有世纪年(能被100整除)必须能被400整除才置闰,也就是四百年97闰。这样格里历的年平均长度为365.2425日,误差比儒略历小很多。

格里历于1582年10月15日开始实施,即儒略历1582年10月4日之后就变成了15日,日期被减去10天。

格里历被各国接受的时间差距很大,最晚的土耳其甚至到1926年才开始采用格里历,也因此很多历史事件如不注明采用的历法会产生相当的混乱。

回历简介

回历也叫伊斯兰历,是一种典型的阴历。法蒂玛王朝制定的回历每年12个月,奇数月30天,偶数月29 天。30年11闰,在一个30年周期的第2、5、7、10、13、16、18、21、24、26、29年的12月底增加一天。

回历的月平均长度约为29.53天,与朔望月长度相当接近。但年平均长度只有约354.3667天,每一年都会比回归年少11天左右。因此回历的新年对应的公历日期会不断提前,而且回历是不分也无法区分季节的。

农历简介

据说根据对甲骨文和历史典籍的考证,中国所使用的阴阳历起源于殷商时期。不过在汉朝之前的历法以366天为一岁,闰月用减差法而不是加差法来调整时差,与现行农历历法差异较大。而现行农历历法的直接起源是汉武帝颁布的《太初历》。自太初历始农历就已基本定型,之后历朝历代即使有所变化也只是细节和历算方面而已。

不论是两千年前的太初历还是现行的农历,确定历法所需的步骤都基本一样,分别是排定气、朔,置闰以及建月。

定气

所谓定气,相对于平气,即根据太阳黄经来确定24节气的具体时刻。

农历历算中是以冬至作为起算点,两个冬至之间即是一个完整的回归年。一个回归年在农历中被称为一“岁”,而冬至在农历中也因此被称为“岁首”。

至于农历为何将冬至视为岁首,据称是因为这一天太阳位置偏南,日影长度最易于测量之故。

定朔

与定气类似,以月亮的运动作为依据确定朔日时刻——也就是初一,以及朔望月长度的方法即为定朔。

现行农历每个月的长度均以月相为准,可能是29天,也可能是30天。

置闰

一岁的长度为365.2422天,一个朔望月的长度为29.53天,一岁约等于12.3689个朔望月,因此农历中的一岁可能横跨了12或13个朔望月。如果是12个月,则称之为“平岁”。如果是13个月,则称之为“闰岁”,需要置闰。

现行农历沿袭太初历,采用“无中气置闰”的方法,即如果某一岁横跨13个月,则将该岁中以包含冬至的那个月为起点开始数,第一个没有中气的月份定为闰月。

建月

所谓建月,即决定哪一个月是一年的起点。自太初历伊始,包括我们的现行历法在内,大多都采用了夏代的建寅制,即以冬至所在月为起点开始数的第三个月为正月,之前的月份为十二月,之后的月份为二月,以此类推。当遇到闰月时则延续前一个月的名称并加上闰字,如“闰七月”。

除夏正建寅的制度外,殷正建丑,周正建子,合称三正。自汉代以来,也曾经有过一些不使用夏正的历史时期,如王莽改用殷正,武则天改用周正。在改正与复正的年份,就会出现没有某个月或某个月出现两次的情况。

干支纪法

从某种角度上说,干支纪年、干支纪月、干支纪日和干支纪时所构成的整体,可以视为附属于农历的一种纯阳历。只是不知为何应用并不广泛,时至今日,民间对干支纪法的理解甚至产生了不少误差和错误。

干支纪年

干支纪年是目前仍然在用的一种纪年方式,之所以还在用,恐怕也只是因为12地支对应12生肖的关系。

与很多人理解的恐怕不太一样,干支纪年并非是以正月初一,而是以立春作为一年的开始。如2012年正月初一是1月23日,但2月4日才是立春,所以2月3日之前都是辛卯年属兔。

干支纪月

干支纪月与农历中所用的朔望月不同,是以24节气所划分的间隔为一月,以地支排序。大雪至小寒是子月,小寒至立春是丑月,以此类推。子月包含了中气冬至,丑月包含了中气大寒,干支纪月的每个月中都包含一个中气。

在某些介绍农历的资料中,也有将包含了冬至的朔望月称为子月的。为了避免混乱,本文没有使用这个说法。

干支纪月的地支部分每年固定,天干部分也可以根据当年的所属天干推算出来。关于推算方法则有一个歌诀:

  • 甲己还加甲,乙庚丙作初;

  • 丙辛从戊起,丁壬庚子居;

  • 戊癸何方发,壬子是真途。

这个歌诀的意思是说,如当年的天干为甲或者己,则子月为甲子月,如为乙或者庚,则子月为丙子月,以此类推。

干支纪日

与干支纪年相似,干支纪日也只是六十一轮回而已。因为有儒略日数,相比起来计算还是比较简单的。

干支纪时

将一天分为12个时辰,以地支为名,子时对应如今24小时制的23点到1点。与干支纪月一样,干支纪时的天干部分,也可以用同样一个歌诀根据干支纪日的天干部分推算出来。

需要注意的是子时分为子正和子初两半。按《新唐书·志第十五·历一》中的记载,李淳风上书言:“古历分日,起于子半。”并被采纳。这样的话,子初时才是每日的起点,即跟现今的24小时制相符,都是0 点。

其他

Y2033

前面有说到,农历置闰是以冬至所在朔望月为起点开始计算,而非建月之后的正月。如果弄错了这一点,历算时就会出错。

以下是2032年冬至到2034年冬至间的朔望月和节气表:

  • 01 2032-12-03(03 04:52:26) 大雪12-06(06 21:52:52) 冬至12-21(21 15:55:29)

  • 02 2033-01-01(01 18:16:36) 小寒01-05(05 09:07:39) 大寒01-20(20 02:32:20)

  • 03 2033-01-31(31 05:59:26) 立春02-03(03 20:41:08) 雨水02-18(18 16:33:22)

  • 04 2033-03-01(01 16:23:05) 惊蛰03-05(05 14:31:54) 春分03-20(20 15:22:17)

  • 05 2033-03-31(31 01:51:12) 清明04-04(04 19:07:41) 谷雨04-20(20 02:12:40)

  • 06 2033-04-29(29 10:45:45) 立夏05-05(05 12:13:18) 小满05-21(21 01:10:30)

  • 07 2033-05-28(28 19:36:06) 芒种06-05(05 16:12:58) 夏至06-21(21 09:00:40)

  • 08 2033-06-27(27 05:06:36) 小暑07-07(07 02:24:29) 大暑07-22(22 19:52:21)

  • 09 2033-07-26(26 16:12:07) 立秋08-07(07 12:15:17) 处暑08-23(23 03:01:22)

  • 10 2033-08-25(25 05:39:21) 白露09-07(07 15:19:53)

  • 11 2033-09-23(23 21:39:19) 秋分09-23(23 00:51:12) 寒露10-08(08 07:13:28)

  • 12 2033-10-23(23 15:27:58) 霜降10-23(23 10:27:08) 立冬11-07(07 10:40:36)

  • 13 2033-11-22(22 09:38:40) 小雪11-22(22 08:15:42) 大雪12-07(07 03:44:27) 冬至12-21(21 21:45:32)

  • 14 2033-12-22(22 02:46:01) 小寒01-05(05 15:04:02)

  • 15 2034-01-20(20 18:01:05) 大寒01-20(20 08:26:49) 立春02-04(04 02:40:41) 雨水02-18(18 22:29:43)

  • 16 2034-02-19(19 07:09:47) 惊蛰03-05(05 20:31:54)

  • 17 2034-03-20(20 18:14:06) 春分03-20(20 21:17:01) 清明04-05(05 01:05:45)

  • 18 2034-04-19(19 03:25:25) 谷雨04-20(20 08:03:14) 立夏05-05(05 18:08:40)

  • 19 2034-05-18(18 11:12:07) 小满05-21(21 06:56:24) 芒种06-05(05 22:06:12)

  • 20 2034-06-16(16 18:25:28) 夏至06-21(21 14:43:42) 小暑07-07(07 08:17:09)

  • 21 2034-07-16(16 02:14:47) 大暑07-23(23 01:35:51) 立秋08-07(07 18:08:37)

  • 22 2034-08-14(14 11:52:35) 处暑08-23(23 08:47:16) 白露09-07(07 21:13:29)

  • 23 2034-09-13(13 00:13:20) 秋分09-23(23 06:39:04) 寒露10-08(08 13:06:36)

  • 24 2034-10-12(12 15:32:10) 霜降10-23(23 16:15:57) 立冬11-07(07 16:33:09)

  • 25 2034-11-11(11 09:15:45) 小雪11-22(22 14:04:28) 大雪12-07(07 09:36:19)

  • 26 2034-12-11(11 04:13:56) 冬至12-22(22 03:33:30) 小寒01-05(05 20:55:13)

编号10的那个月没有中气,但因为编号01的月份到编号13的月份之间只有12个月,于是编号10的月份并不是闰月,2033年是平岁。

而编号13的月份到编号26的月份之间有13个月,2034年为闰岁。依照置闰规则,从编号13开始数的第一个没有中气的月份,即编号14这个月为闰月。

但因为建寅的关系,编号14这个月名为闰十一月,属于上一年,于是就出现了2033年虽然是平岁却是闰年,2034年虽然是闰岁却是平年的情况。

或许是错将置闰规则理解为以正月而不是冬至所在月起算,1990年之前出版的万年历都将编号10那个月定为闰月,月名闰七月。这一错误被称为Y2033问题,至今某些网上流传的代码中仍然还存在这个问题,使用时需要小心。