农历算法简介

时间:2022-05-18 03:57:12 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
一、节气的计算

先给节气进行编号,从近日点开始的第一个节气编为0,编号如下及其相应的月份如下: 0 小寒 腊月 1 大寒 腊月 2 立春 正月 3 雨水 正月 4 惊蛰 二月 5 春分 二月

6 清明 三月 7 谷雨 三月 8 立夏 四月 9 小满 四月 10 芒种 五月 11 夏至 五月

12 小暑 六月 13 大暑 六月 14 立秋 七月 15 处暑 七月 16 白露 八月 17 秋分 八月

18 寒露 九月 19 霜降 九月 20 立冬 十月 21 小雪 十月 22 大雪 冬月 23 冬至 冬月

把当天和190010日(星期日)的差称为积日,那么第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天左右。 三、年份的确定

186410日是农历癸亥年,所以用当年减去186410除得的余数作为年份天干的,12除得的余数作为年份的地支,数字对应的天干和地支如下。

数字 0

1 2

3

4

5

6

7

8

9

10 11

天干 地支 当年的10日换算为积日,可以用年份减去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),那么该月就是上一个月的闰月,并把这个中气作为F(2),以后的中气、朔日和农历月份也这样确定。


本文来源:https://www.wddqw.com/doc/e8cc42f8941ea76e58fa0430.html