Skip to content

中国农历是怎么算的?

1、先确定两个冬至的时刻。

2、计算两个冬至之间(区间包含第一个,不含第二个)有多少个朔的时刻,两个朔之间为一个月。朔的时刻在哪天,哪天就是初一,天的划分以北京时间(UTC+8) 00:00:00 为界。

3、计算中气的时刻,也就是地球公转 30° 整数倍那一刻的时间。

4、检查两个冬至之间有几个朔,如果有 12 个朔(构成 11 个朔望月 + 1 个朔),则不置闰,就算有月份没有中气也不置闰。如果有 13 个朔(构成 12 个朔望月 + 1 个朔),则继续检查每个月是否都有中气。如果某个月没有,那么该月为闰月,名称延续上一月;如果有两个月没有,第一个没有中气的月为闰月,第二个月不置闰。

另外,由于地球在近日点公转速度快,远日点速度慢,再叠加月球在近地点公转速度快,远地点速度慢。就会导致朔的间隔不固定,大致在 29.27 天和 29.84 天之间波动,进而影响到初一的划分,就会有大小月,即大进和小进。

某种程度上来说,农历是在解决特定条件下受扰动的二体、三体,甚至是多体问题,必须精确计算出每个节气和朔的确切时间。

现在负责编算农历的是紫金山天文台,提前一年发布日历,最新的是二〇二六年的,他们用的数据也都和国际接轨了,美国喷气推进实验室(Jet Propulsion Laboratory)的太阳系模型数据,而且现行农历是有国标的,感兴趣可以去看一下。

现行农历也继承了夏朝和汉代以来的传统,比如「建寅为正」,也就是寅月为正月。

建寅的意思是,北斗七星斗建也就是斗柄,指向寅位。把天赤道当成一个大圆,在上面划分出十二地支,北斗七星斗柄当做指针。古代以黄昏时斗柄指向为准。

天赤道

冬至在斗建指向正北方子位时发生,而且极容易观测,所以冬月为子月。建寅为正,如果中间有闰月,比如闰冬月,那么闰冬月也继续是子月,同理,闰腊月继续是丑月,确保寅月为正月。

在卦象上,冬至时为 ䷗,一阳初生,到建寅的时节正好 ䷊,三阳开泰,兆头很好。

把正月当做一月,往下数,会发现冬至永远在十一月,它可能在一年的第十二个月,但永远在名为十一月的那个月,所以十一月又称冬月。现在都是直接先规定冬至所在月为十一月了。

不难理解,因为地支只有十二个,固定死了。从寅数到子,寅卯辰巳午未申酉戌亥子,子位于第十一个。这也就决定了如果子与子之间正好把地支轮完,那么就不需要闰月,而如果中间多出来一个月,那么就需要闰月,不然地支不够用。

农历癸丑年(2033 年 01 月 31 日 - 2034 年 02 月 18 日),冬至日为冬月三十(12 月 21 日)。上一个冬至日在冬月十九(2032 年 12 月 21 日)。中间十二个月份正好一一对应十二地支,虽然出现了没有中气的申月(七月),但依然不置闰。下一个冬至日在冬月十二(2034 年 12 月 22 日),中间十三个月份如果一一去对应十二地支,会发现多出来一个月,而冬至后的第一个月没有中气,所以该月为闰月,名称延续冬月,为闰冬月。对于一个冬月出生的人来说(比如本人),这可能是今生唯一一次闰生日月。

正月也不一定非得在寅月,夏朝建寅为正,商朝建丑为正,周朝建子为正,秦朝建亥为正,汉武帝又改回来了,建寅为正。王莽托古改制,建丑为正。武周(唐),武则天效法周朝,建子为正。

三代到秦,每次都提前一个月,很有意思。秦朝采用颛顼历,建亥为正,结合胡亥之亥,联系到亥位于十二地支之末,但同时又是秦的岁首,不始不终,始于亥历,亡于亥人。

改正朔其实也合乎礼,《礼记·大传》,“圣人南面而治天下,必自人道始矣。人道谓此五事。立权度量,考文章,改正朔,易服色,殊徽号,异器械,别衣服,此其所得与民变革者也。”

孔颖达注疏,“‘改正朔’者,‘正’谓年始,‘朔’谓月初,言王者得政,示从我始改故用新,随寅丑子所损也。周子、殷丑、夏寅,是改正也。周夜半,殷鸡鸣,夏平旦,是易朔也。”

2026年02月16日更新

Lunar/Lunisolar New Year 与 Chinese New Year 之争。如果你是按照中国农历来过新年的,那么这个年毫无疑问是 Chinese New Year ,因为中国农历是按照北京时间(UTC+8)计算出来的,其他国家所在时区不同,计算出来的农历也会和中国农历不一样,新年时间也会不同。

{中国农历新年}⫋{农历新年},用 Lunar/Lunisolar New Year 来指代 Chinese New Year 是不准确的。

其他国家的人也会过农历新年,如果他们是跟着中国农历过的,那么他们过的是中国农历新年;如果他们是跟着自己所在国农历过的,那么过的就是所在国农历新年。

Siguiente
变量与常量