谈谈历法知识

作者: 阮一峰

日期: 2009年1月26日

腾讯课堂 NEXT 学院

新春期间,我忍不住又想到了一个老问题:

为什么每年春节的日期都不一样?

从2007年到2010年,春节的日期分别为2月18日、2月7日、1月26日、2月14日和2月3日。为什么会这样?到底是怎么计算的?

我看了一些资料,下面就是我整理的关于历法知识的笔记。完全根据我自己的理解来写,说得不对的地方,欢迎指正。

================

1. 什么是公历?

公历又称阳历,是全世界目前通行的历法,以地球绕行太阳一圈作为一年。我国从1911年辛亥革命后,开始采用公历。

2. 什么是闰年?

闰年是为了解决公历年与太阳年之间的差异,而做出的安排。

地球公转一圈的准确时间是365天5小时48分46秒(365.242199174天),而公历年一年只有365天,所以每年会多出5小时48分46秒,每4年就会多出23小时15分4秒,约为1天。因此,公历规定,凡是能够被4整除的年份,该年就增加一天(2月29日)。这就是闰年的来历。

但是这样一来,时间还是不对,每4年多了一天以后,会比公转周期提前44分56秒。这就是说每400年就会比公转周期提前3天,因此每400年中需要少闰3次。所以公历又规定,凡是尾数为00的年份,只有能被400整除的才是闰年,否则就不算。比如1600年和2000年都是闰年,但是1700年、1800年、1900年都不是闰年。

但是,即使这样计算,每400年中,公历仍然要比公转周期快出2小时50分20秒,因此大概每过3000多年,公历还要再减少1天。

3. 什么是农历?

农历是中国古代的历法,同时考虑太阳和月亮的位置,来确定日期。因此,从性质上说,农历是阳历和阴历的结合,属于阴阳历。

4. 农历的一年如何确定?

在农历中,月亮围绕地球旋转一圈,就被算做一个月。从地球上观察,一个月就代表月亮盈亏的一个周期。农历规定,新月出现的那天就是每个月的初一,满月出现的那天就是每个月的十五。

月亮围绕地球旋转一圈的准确时间是29天12小时14分3秒(29.5306天)。因此,在农历中,一个月可能是29天(小月),也可能是30天(大月)。农历规定,月亮每盈亏12次,就算为一年。

这里需要注意的是,大月和小月不一定间隔出现,有可能几个大月连在一切,也有可能几个小月连在一起,一切要根据月亮的盈亏时间而定。

5. 什么是闰月?

闰月是为了解决地球公转周期与农历之间的差异,而做出的安排。

按照农历,大月为30天、小月为29天,全年12个月,一年仅有354天,比公历要少11天。这就是说,农历中的日期,在每一个公历年中,都会比上一年提前11天。

为了保证每年的正月是在冬季,所以农历规定,每过3年左右,就多设置一个月,与公历周期保持稳定,这就是闰月。

更精确的描述是"十九年七闰",即19年中设置7个闰月,这样一来,农历与公历的周期就基本一致了。

6. 什么是节气?

节气是中国古代为了测定季节,所设立的一种历法标志,配合农历使用。

根据日晷,我们的祖先将每年日影最长的一天定为"冬至",日影最短的一天定为"夏至"。在春秋两季中,各有一天的昼夜时间长短相等,便分别定为"春分"和"秋分"。然后以这几个日期为基准,再定出其他的节气,合称24节气。

从天文学上看,地球公转一周是360度,因此地球每前进15度,就是一个节气。我们现在知道,冬至和夏至分别是太阳直射南北回归线,春分和秋分是太阳直射赤道。

一年有12个月,因此每个月有两个节气。前面一个称为"节",后面一个称为"中",两者相差15天左右。所以,24节气又分为12节气和12中气。

前面说过,农历年比公历年少11天。因此,节气作为一种太阳位置的标志,在农历年中,每年都会比前一年晚11天。比如,2007年清明节是农历2月18日,2008年清明节是农历2月28日,2009年清明节是农历3月9日,每年都相差11天左右。如果前面一个节气在农历15号之后出现,那么后面一个中气就排不进这个月,所以农历中经常出现没有中气的月份。

7. 闰月是如何确定的?

闰年的设置方法,以每年的冬至为计算基准。一般来说,两个冬至之间应该有11次月亮的盈亏(不考虑两个冬至本身所在的月),但是由于农历年比公历年少11天,所以有可能出现两个冬至之间有12次月亮的盈亏。如果发生这种情况,则从冬至开始的这一年中,将加入一个闰月。

具体规则是,从"冬至"开始,当出现第一个没有"中气"的月份时,这个月份就是闰月,其名称是在前个月的前面加一个"闰"字。

8. 春节是如何确定的?

春节的日期是根据每年的冬至计算的。

农历规定,冬至必须在农历11月。所以,冬至最早可能是农历11月初一,最晚可能是11月三十。由于在公历中,冬至一般是12月21日或12月22日,而冬至与春节之间最短相差30天,最长相差60天。所以,春节最早是1月20日,最晚是2月20日。

(完)

留言(31条)

不错,转载之

看秘籍!哈哈

公历农历换算大法:

首先,公元元年,即公元1年,相对应的我国农历是辛酉年,这是个换算的大前提。
然后,根据上面的前提,把我国的天干地支编成对应的两组数字:

甲 乙 丙 丁 戊 己 庚 辛 壬 癸
4 5 6 7 8 9 0 1 2 3
子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥
4 5 6 7 8 9 10 11 0 1 2 3

再次就是具体推算方法(以2009年为例):
1、公元纪年的末位数所对应的天干,就是那一年的天干,如2009年,末位数是9,它所对应的天干是“己”。己就是2009年的天干。
2、接下来就开始推算地支了,把公元纪年数,即2009除以12,余数是5,5所对应的地支是丑,也就是该年份的地支。
然后把天干地支合起来,就是该公元年份的农历年份了,2009年的天干是己,地支是丑,2009年就是己丑年。

这有什么意思呢?不懂。

与其研究这个,还不如去研究研究在夏代我们的先民是如何制作出这么精密的农历的。

“十九年七闰”只是大体的说法,是否置闰主要要看天文数据。一切计算以天文为准。
另外 to Timesand :
我们现行的历法是德国耶稣会传教士汤若望在明末清初根据西方天文知识和天文仪器制定的。
真正算是还可以用(比这个差很多)的历法也是在春秋时候才有的。
夏这种还在神话中的东西还是不要提了吧。

阮老师,你好。

请问如果算农历的话,牛年是不是应该从初一子时开始算呢?(也就是除夕夜的11点,我是在那个时候给别人拜年的~~)

顺祝新春愉快,身体健康。:)

以前我也研究过这个问题
看过一点资料说是自古我国都春节是定在春分
由于春分不确定是每年一个 所以
辛亥之后由袁世凯改为12月底为春节

给您拜年来了。

看过几个阳历转农历的程序,居然都是存储了一定年数的每月的天数,难道不能用纯算法算出来吗?

随便问问,如果是闰腊月怎么办?会不会春节迟到3月20号?

记得我以前特地查过阴阳历的转换,结果发现根本没有计算方法,阴历完全是按照天文观测来制定的……

“农历规定,每过3年左右,就多设置一个月,与公历周期保持稳定,这就是闰月。”
农历出现的时候公历就已经有了?我印象中农历应该早于公历出现吧?

To RedNax
夏这种还在神话中的东西还是不要提了吧。
老兄,夏朝是中国的第一个朝代,是有考古依据的,都城之一在河南省洛阳市偃师县二里头村。这个是很确切的。

azalea 说:

随便问问,如果是闰腊月怎么办?会不会春节迟到3月20号?

是不可能出现的

因为农历是阴阳历,以观测为基础,所以而闰月的发生必须的上月无中气。而一个农历月为29-30日,而一个中气间隔为地球公转轨道的15度。根据开普敦的三大定律,北半球的冬天在距日近点,公转速度快,15度的时间小于29日,所以冬天月份不可能出现30日内无一中气。相反,在夏天,公转速度慢,走15度需时更长于30日,所以闰月才会发生,一般闰月出现在公历6-7-8-9月

说实话,从没考虑过这个问题。长见识了。

1、从2007年到2010年,春节的日期分别为2月18日、2月7日、1月26日、2月14日和2月3日……
老先生,发现错误了么?
2、公历又称阳历,是全世界目前通行的历法,以地球绕行太阳一圈作为一年。我国从1911年辛亥革命后,开始采用公历。
貌似1911年为民国元年吧?台湾现在还民国九十八年云云呢。采用公历那是PRC之后的事情。
掏老祖宗兜可以,你认真点行不?

引用null的发言:

1、从2007年到2010年,春节的日期分别为2月18日、2月7日、1月26日、2月14日和2月3日……
老先生,发现错误了么?
2、公历又称阳历,是全世界目前通行的历法,以地球绕行太阳一圈作为一年。我国从1911年辛亥革命后,开始采用公历。
貌似1911年为民国元年吧?台湾现在还民国九十八年云云呢。采用公历那是PRC之后的事情。
掏老祖宗兜可以,你认真点行不?


年号和历法又不冲突。日本明治维新后改旧历(同中国历)为西历,但年号还一直保留至今。你不能说人家不是用公历吧。年号不过是称呼年的方法,记日才是历法。

引用azalea的发言:

随便问问,如果是闰腊月怎么办?会不会春节迟到3月20号?

有计算表明,2262年将会再次出现闰一月;3358年将会首次出现闰十二月。

我不知道是怎么算的。

引用沈蚊的发言:

请问如果算农历的话,牛年是不是应该从初一子时开始算呢?(也就是除夕夜的11点,我是在那个时候给别人拜年的~~)

我对古人一天中如何计时,不太了解,不敢乱说。

引用AnLuoRidge的发言:

记得我以前特地查过阴阳历的转换,结果发现根本没有计算方法,阴历完全是按照天文观测来制定的……

农历已经没有实用价值了,本身就不太科学,计算又十分麻烦,完全应该废除,只作为文化遗产保留。

现在的公历,就是格里高利历(Gregorian calendar),之前西方国家还有儒略历(Julian calendar)。这里有英文wiki的相关网址,可以作为了解的参考。
http://en.wikipedia.org/wiki/Gregorian_calendar
http://en.wikipedia.org/wiki/Julian_calender

引用Ruan YiFeng的发言:

农历已经没有实用价值了,本身就不太科学,计算又十分麻烦,完全应该废除,只作为文化遗产保留。

请问我们那里种地还是按照农历啊,顾名思义,农历就是务农之历。芒种、雨水都是提示了农时的。 另外季节也是农历比较符合国情。农历里6月比较热,而公历到了7、8月份才热起来。按说1、2月份该是春天了,实际上刚过完春节。 完全废除?那也废除春节?清明?端午?中秋? 没有实用价值是从哪里说起呢?

引用虚心请教的发言:


请问我们那里种地还是按照农历啊,顾名思义,农历就是务农之历。芒种、雨水都是提示了农时的。
另外季节也是农历比较符合国情。农历里6月比较热,而公历到了7、8月份才热起来。按说1、2月份该是春天了,实际上刚过完春节。
完全废除?那也废除春节?清明?端午?中秋?
没有实用价值是从哪里说起呢?

我来代为回答吧。 如果你了解旧历“阴阳合历”的意义就知道是为什么了。旧历月份只和月亮有关,虽然靠闰月的方法调整,但和太阳总有偏差。节气只和太阳有关,基本上节气的日期和格利高里历没有多大差别(最多两,三天)。 务农主要靠的是什么呢?就是太阳。太阳决定了气候,所以务农的需要看旧历就只看节气,月日对务农是没有任何帮助的(当然渔业能有一定帮助,因为能知道潮汐状况)。 也就是说,如果只是务农的话,旧历和格利高里历没有区别,只是“春分时做XXX”变成“3月20日做XXX”这样而已。 要说季节的话,旧历的月份是没有参考价值的,季节只和太阳有关,当然是节气的部分或者格利高里历更精确些。

我也赞成废除旧历,现在旧历能被人想起也只是在春节和中秋了吧,春节每年时间变动,给生活安排造成很大困扰,如果能和新年安排在一起就更好了……

我们这里乡村、县城的全部人,市区的一半左右人,还是按阴历过的。我们的生日都是过阴历的生日。就是我们日历上的那种阴历。

引用Ruan YiFeng的发言:

农历已经没有实用价值了,本身就不太科学,计算又十分麻烦,完全应该废除,只作为文化遗产保留。


不同意阮老师的这个观点。

所谓的文化底蕴,就是指人生这么长,搞一点稀奇古怪的事情来做才算度过……所以汉民族不灭,农历就不会消失。

阴历(月亮历)的唯一作用我想应该是看日子,古时候没有月份牌,晚上抬头看看月亮就知道是初几了,是方便的。
阴历里再馋进去节气(节气是和太阳相关的,和现在的公历完全同步)就变成阴阳合历,称为农历。
大家引以为自豪的清明冬至这些节气是和太阳相关的,和阴历一点关系没有,因为他们永远是在一年的固定日子。

引用Timesand的发言:

与其研究这个,还不如去研究研究在夏代我们的先民是如何制作出这么精密的农历的。

真是不好意思,咱们用的农历是外国人给编的。您再好好查查就明白了。

农历比阳历在很多方面更科学更准确,虽然误差轮回时间更长。至于二十四节气我引用一段:”二十四节气是根据地球在环绕太阳运行的轨道上所处位置划定的。地球绕太阳公转一周为 360 度,以春分时为 0 度,清明时为 15 度,以后每隔 15 度为一个节气,其日期在日历中是基本固定的。二十四节气是中国历法的独创,是我国古代科学文化的辉煌成就之一。而现在采用的所谓“公历”在自然规律的符合程度上,远远比不上中国的农历。”

引用Ruan YiFeng的发言:

农历已经没有实用价值了,本身就不太科学,计算又十分麻烦,完全应该废除,只作为文化遗产保留。


农历更接近于自然界的春夏秋冬,虽然不完全一致,比公历差 1~ 2 个月左右,这是因为地球转速在越来越慢,地球和月球的距离越来越远,以前 1 天是 18 小时,20 个小时……

以上有一个说,如果闰腊月春节就到三月了。其实历法中规定接近立春的朔日就是正月初一,这样看来润腊月就不可能出现。

为什么早起文章都没有图片了,看了好几篇文章都不显示图片

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接