農曆演算法簡介以及公式

2021-04-12 12:44:55 字數 1530 閱讀 4711

農曆演算法簡介以及公式

有關農曆的東西有以下幾篇文章:

計算某天是星期幾【c**】

農曆演算法簡介以及公式

農曆中天干地支的計算【c**】

農曆一百年演算法(1921~2021)【c語言**】

農曆兩百年演算法(1901~2100)【c語言**】

一、節氣的計算

先給節氣進行編號,從近日點開始的第乙個節氣編為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 冬至 冬月

把當天和2023年1月0日(星期日)的差稱為積日,那麼第y年(2023年算第0年)第x 個節氣的積日是

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

這個公式的誤差在0.05天左右。

二、朔日的計算

從2023年開始的第m個朔日的公式是

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

這個公式的誤差在0.2天左右。

三、年份的確定

2023年1月0日是農曆癸亥年,所以用當年減去1864,用10除得的餘數作為年份天乾的,用12除得的餘數作為年份的地支,數字對應的天乾和地支如下。

數字0 123

4567

89

1011

天乾甲 乙

丙 丁

戊 己

庚 辛

壬 癸

地支子丑 寅

卯 辰巳 午

未 申酉 戌

亥 當年的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)

java農曆演算法

final public long getlunarint 傳出y年m月d日對應的農曆.year0 month1 day2 yearcyl3 moncyl4 daycyl5 isleap6 if offset 0 lunarint 0 i lunarint 3 i 1864 leap leapmon...

C 實現的農曆演算法

農曆演算法簡介以及公式 一 節氣的計算 先給節氣進行編號,從近日點開始的第乙個節氣編為0,編號如下及其相應的月份如下 0 小寒 臘月 6 清明 三月 12 小暑 六月 18 寒露 九月 1 大寒 臘月 7 穀雨 三月 13 大暑 六月 19 霜降 九月 2 立春 正月 8 立夏 四月 14 立秋 七...

C 公曆轉農曆演算法

using system using system.collections.generic using system.text 地支 private static string dizhi 十二生肖 private static string shengxiao 農曆日期 private stati...