北京时间农历的简化计算公式

作者:黄阿姨 来源:黄阿姨 日期:2009-11-3

一、节气的计算

先给节气进行编号,从近日点开始的第一个节气编为 0,编号如下及其相应的月份如下:

0 小寒 6 清明 12 小暑 18 寒露

1 大寒 十二月 7 谷雨 三月 13 大暑 六月 19 霜降 九月

2 立春 8 立夏 14 立秋 20 立冬

3 雨水 正月 9 小满 四月 15 处暑 七月 21 小雪 十月

4 惊蛰 10 芒种 16 白露 22 大雪

5 春分 二月 11 夏至 五月 17 秋分 八月 23 冬至 十一月

把当天和 1900 年 1 月 0 日(星期日)的差称为积日,那么第 y 年(1900 年算第 0 年)第 x

个节气的积日是

F = 365.242 * y + 6.2 + 15.22 * x - 1.9 * sin(0.262 * x)

这个公式的误差在 0.05 天左右。

二、朔日的计算

从 1900 年开始的第 m 个朔日的公式是

M = 1.6 + 29.5306 * m + 0.4 * sin(1 - 0.45058 * m)

这个公式的误差在 0.2 天左右。

三、年份的确定

1864 年 1 月 0 日是农历癸亥年,所以用当年减去 1864,用 10 除得的余数作为年份天干

的,用 12 除得的余数作为年份的地支,数字对应的天干和地支如下。

数字 0 1 2 3 4 5 6 7 8 9 10 11

天干 甲 乙 丙 丁 戊 己 庚 辛 壬 癸

地支 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥

当年的 1 月 0 日换算为积日,可以用年份减去 1900 得到的年数被 4 整除,所得商数作为

y(D4),余数作为 y(M4),y(M4) 为零的年份是公历闰年,积日是

D(1) = 1461 * y(D4) - 1

y(M4) 不为零的年份是公历平年,积日是

D(1) = 1461 * y(D4) + 365 * y(M4)

四、月份的确定

计算前一年冬至的积日 F(0),并用 F(0) 计算冬至所在的朔月 m 及其朔日 M(0),就可以

推算冬至的农历日期,冬至所在的农历月份总是十一月。计算下一个中气 F(1) 和下一个

朔日 M(1),如果 F(1)<M(1),那么该月就是上一个月的闰月,并把这个中气作为 F(2),以

后的中气、朔日和农历月份也这样确定。

相关文章