農曆演算法簡介以及公式
有關農曆的東西有以下幾篇文章:
計算某天是星期幾【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...