打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
二十四节气如何计算
1二十四节气如何计算?立春日期的计算:计算公式:Y*D+C-L公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。21世纪C值=3.87,22世纪C值=4.15。立春日期的计算计算公式:Y*D+C-L公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。21世纪C值=3.87,22世纪C值=4.15。举例说明:2058年立春日期的计算步骤58X.0.2422+3.87-(58-1)/4=17-14=3,则2月3日立春。雨水日期的计算Y*D+C-L公式解读:年数的后2位乘0.2422加18.74取整数减闰年数。21世纪雨水的C值18.73。举例说明:2008年雨水日期=8X.0.2422+18.73-(8-1)/4=20-1=19,2月19日雨水。例外:2026年计算得出的雨水日期应调减一天为18日。惊蛰日期的计算Y*D+C-L公式解读:年数的后2位乘0.2422加5.63取整数减闰年数。21世纪惊蛰的C值=5.63。举例说明:2088年惊蛰日期=88X.0.2422+5.63-88/4=26-22=4,3月4日是惊蛰。例外:无。春分日期的计算Y*D+C-L公式解读:年数的后2位乘0.2422加20.646取整数减闰年数。21世纪春分的C值=20.646。举例说明:2092年春分日期=92X.0.2422+20.646-92/4=42-23=19,3月19日是春分。例外:2084年的计算结果加1日。清明节日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=4.81,20世纪=5.59。2举例说明:2088年清明日期=88X.0.2422+4.81-88/4=26-22=4,4月4日是清明。例外:无。谷雨节日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=20.1,20世纪=20.888。 举例说明:2088年谷雨日期=88X.0.2422+20.1-88/4=41-22=19,4月19日是谷例外:无。立夏日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=5.52,20世纪=6.318。举例说明:2088年立夏日期=88X.0.2422+5.52-88/4=26-22=4,5月4日是立夏。例外:1911年的计算结果加1日。小满日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=21.04,20世纪=21.86。 举例说明:2088年小满日期=88X.0.2422+21.04-88/4=42-22=20,5月20日小满。例外:2008年的计算结果加1日。芒种日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=5.678,20世纪=6.5。 举例说明:2088年芒种日期=88X.0.2422+5.678-88/4=26-22=4,6月4日芒种。例外:1902年的计算结果加1日。夏至日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=21.37,20世纪=22.20。 举例说明:2088年夏至日期=88X.0.2422+21.37-88/4=42-22=20,6月20日夏至。例外:1928年的计算结果加1日。小暑日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=7.108,20世纪=7.928。 举例说明:2088年小暑日期=88X0.2422+7.108-88/4=28-22=6,7月6日是小暑。例外:1925年和2016年的计算结果加1日。大暑日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=22.83,20世纪=23.65。 举例说明:2088年大暑日期=88X0.2422+22.83-88/4=44-22=22,7月22日大暑。例外:1922年的计算结果加1日。立秋日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=7.5,20世纪=8.35。 举例说明:2088年立秋日期=88X0.2422+7.5-88/4=28-22=6,8月6日是立秋。例外:2002年的计算结果加1日。雨。3处暑日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=23.13,20世纪=23.95。举例说明:2088年处暑日期=88X0.2422+23.13-88/4=44-22=22,8月22日处暑。例外:无。白露日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=7.646,20世纪=8.44。 举例说明:2088年白露日期=88X0.2422+7.646-88/4=28-22=6,9月6日是白露。例外:1927年的计算结果加1日。秋分日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=23.042,20世纪=23.822。举例说明:2088年秋分日期=8X.0.2422+23.042-88/4=44-22=22,9月22日是秋分。例外:1942年的计算结果加1日。寒露日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=8.318,20世纪=9.098。举例说明:2088年寒露日期=88X0.2422+8.318-88/4=29-22=7,10月7日是寒露。例外:无。霜降日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=23.438,20世纪=24.218。 举例说明:2088年霜降日期=88X0.2422+23.438-88/4=44-22=22,10月22日霜降。例外:2089年的计算结果加1日。立冬日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=7.438,20世纪=8.218。举例说明:2088年立冬日期=88X0.2422+7.438-88/4=28-22=6,11月6日是立冬。例外:2089年的计算结果加1日。小雪日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=22.36,20世纪=23.08。举例说明:2088年小雪日期=88X0.2422+22.36-88/4=43-22=21,11月21日小雪。例外:1978年的计算结果加1日。大雪日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=7.18,20世纪=7.9。 举例说明:2088年大雪日期=88X0.2422+7.18-88/4=28-22=6,12月6日大雪。例外:1954年的计算结果加1日。4冬至日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=21.94,20世纪=22.60。举例说明:2088年冬至日期=88X0.2422+21.94-88/4=43-22=21,12月21日冬至。例外:1918年和2021年的计算结果减1日。小寒日期的计算Y*D+C-L公式解读:丫丫= =年数后2位,D=0.2422,L=闰年数,21世纪C=5.4055,20世纪=6.11。举例说明:1988年小寒日期=88X.0.2422+6.11-(88-1)/4=27-21=6,1月6日小寒。例外:1982年计算结果加1日,2019年减1日。大寒日期的计算Y*D+C-L公式解读:丫丫= =年数的后2位,D=0.2422,L=闰年数,21世纪C=20.12,20世纪C=20.84。 举例说明:2089年大寒日期=89X0.2422+20.12-(89-1)/4=41-22=19,1月19日大寒。例外:2082年的计算结果加1日,20世纪无。农历 24 节气算法/许剑伟/天星历算(2012-06-17 18:41:46)转载标签: 八字命理八字算命天文历法星座农历 24 节气算法许剑伟摘要古老而又现代的中国农历,是一种天文学性质的阴阳历。本文采用 VSOP87 星历算 法并结合运动学方法以及牛顿求根法得到 24 节气的精确时间,揭开农历计算的神秘面纱。关键字农历算法、星历、节气正文计算中国农历,首先要计算岀二十四节气时刻。在计算机问世之前,二十四节气的许 算是非常复杂的。随着计算机及互联网的普及,美国航空航天局、法国巴黎天文台各自在网 络上发布了精密星历表的计算方法,这使得民间计算农历成为可能。本文以法国巴黎天文台 的 VSOP87 算法为基础,给出中国农历的二十四节气算法。在农历中,太阳黄经为 0 度时,对应春风节气。相邻节气对应的太阳黄经相差 15 度。一周 年内,太阳黄经从 0 度变化到360 度,共有 24 个节气。一、时间标尺一一儒略日数计算计算星历之前首先要解决时间尺问题。公历规定平年 365 日,闰年 366 日。1582 年 10 月 4 日以前,公历规定每 4 年设置5一个闰年,平均年长度 365.25 天,这期间的公历称为儒略 历。在 1582 年 10 月 15 日之后实行格里高利历,规定每 400年 97 闰,平均年长度为 365.2425 天。由于儒略历存在严重的 多闰”问题,到了 1582 年,公历跑快了 10 天左右,当时就人为调整 了 10 天,并从此实行格里历。因此务必注意 1582 年 10 月 4 日(儒略历)的下一日为 15 82 年 10 月 15 日(格里历)。就是说 1582 年 10 月份少了 10天。在儒略历中,能被 4 整除的年份为闰年,这一年有 366 天,其它年份为平年(365 天)。如 900 年和 1236 年为 闰年,而 750 年和 1429 年为平年。格里高利历法也采用这一规则, 但下列年份除外: 不能被 100 整除的年份为平年, 如 1700 年, 1800 年, 1900 年和 2100 年。其余能被 400 整除的年份则为闰年,如 1600 年,2000 年和 2400 年。儒略日数(简称儒略日):儒略日数是指从公元-4712 年开始连续计算日数得出的天数及不满一日的小数,通常记为JD (*)。传统上儒略日的计数是从格林尼治平午,即世界时 12 点开始的。若以力学时(或 历书时)为标尺,这种计数通常表达为儒略历书日,即 JDE (*),其中 E 只是一种表征, 即按每天 86400 个标准秒长严格地计日。例如:1977 年 4 月 26.4日UT =JD 2443259.91977 年 4 月 26.4日TD =JDE 2443259.9儒略日的计算:设 Y 为给定年份,M为月份 ,D 为该月 日期(可以带小数)。若 M 2,Y 和 M 不变,若 M =1 或 2,以 Y -代 Y,以 M+12 代 M ,换句话说,如果日 期在 1 月或 2 月,则被看作是在前一年的 13 月或 14 月。对格里高利历有:A = INT ( Y/100 ) B = 2 - A + INT(A/4)对儒略历,取 B = 0儒略日即为:JD = INT(365.25(Y+4716)+INT(30.6001(M+1)+D+B-1524.5使用数值 30.6 取代 30.6001 才是正确的,但我们仍使用 30.6001,以确保总能取得恰当的整数。事实上可用 30.601 甚至 30.61 来取代 30.6001。例如,5 乘 30.6 精确等于 153,然而大多数计算机不能精确表示出 30.6,这导致得出一个 152.9999998 的结果,它的整数部分为 152,如此算出的 JD 就不正确了。由儒略日推算历日:将 JD 加上 0.5,令 Z 为其整数部分,F 为尾数(小数)部分。若 Z 2299161 ,取 A = Z若 Z 大于等于 2299161,计算a=INT(Z -1867216.25)/36524.25)A=Z+1+a-INT(a/4)然后计算B = A+1524C = INT(B-122.1)/365.25)D = INT(365.25C)E = INT(B-D)/30.6001)该月 日期(带小数部分)则为:d = B - D - INT(30.6001E)+ F月份 m 为:IF E 2 THEN y = C - 4716IF m =1 or m=2 THEN y = C - 4715这个公式里求 E 时用的数 30.6001 不能代之以 30.6 ,哪怕计算机没有先前所说的问题。否 则,你得到的结果会是 2 月 0日而不是 1 月 31 日,或者 4 月 0 日而不是 3 月 31 日。值得记住的一个常数是:2000 年 1 月 1 日 12:00:00 的儒略日数是 J2000= 2451545二、力学时与世界时的差值(deltat T)计算一般的,可以把手表时(UTC )近似看作世界时(UT),二者的主要差别在于时区。如北京 手表时 8 点对应世界时 0 点。世界时与地球自转严格同步,但有趣的是,我们的手表时实 际上称为协调世界时,它的秒长是原子钟的秒长,由于地球自转速度不均匀,时快时慢,这 就注定手表时与地球自转不完全同步。现在,地球自转速度正在变慢,我们不得不在某些年份的年末把手表拨慢 1 秒,使得手表时更好的与地球自转同步,并美言为 跳秒。力学时是 根据太阳系的动力学原理导岀的,是一种均匀的时间系统,其秒长与原子钟的秒长相同。因 此,协调世界时(UTC )与世界时(记为 UT )其本同步,但力学时(记作 TD )与世界时不 太同步,二者的差值记作 deltat T 或记作 T。利用直接的天文观测可以得知每年的T, 利用古代的日月食观测资料可以反推古代的厶 T。所有年份的 T 计算出来后,可以拟合出 以下多项式表达,使得T 的计算更快捷,计算结果的单位是秒。我们利用下表可以严格计算 T (即 T =TD - UT )年份 a b c d-4000,108371.7,-13036.80,392.000,0.0000-500,17201.0, -627.82,16.170,-0.3413-150,12200.6, -346.41, 5.403,-0.1593150, 9113.8, -328.13,-1.647,0.0377500, 5707.5, -391.41, 0.915,0.3145900, 2203.4, -283.45,13.034,-0.17781300,490.1, -57.35, 2.085,-0.00721600,120.0,-9.81,-1.532,0.14031700,10.2, -0.91, 0.510,-0.03701800,13.4, -0.72, 0.202,-0.01931830,7.8,-1.81, 0.416,-0.02471860,8.3,-0.13,-0.406,0.02921880,-5.4,0.32,-0.183,0.01731900,-2.3,2.06, 0.169,-0.01351920,21.2,1.69,-0.304,0.01671940,24.2,1.22,-0.064,0.00311960,33.2,0.51, 0.231,-0.01091980,51.0,1.29,-0.026,0.00322000,63.87,0.1,0, 0,2005表中每一行适用一定的年代范围,如第 1 行适用于公元-4000 年到-500 年,第 2 行适用于 公元-500 到-1500 年,其它类推。每行的起始年份记作 Y1,终止年份记作 Y2,如果年份 y 在 Y1 到 Y2 之 间,那么该年的 deltat T 表达为: T = a + b*t1 + c*t2 + d*t3,单位是秒其中 t1 =( y-Y1 ) / ( Y2-Y1 ) *10 , t2 = t1*t1 , t3 = t1*t1*t1对于 2005 年以后的 deltat T 是未知的,要做外推计算:2005 至 2014 年建议使用 1995 到 2005 年期间 T 的平均增速计算,即:7 T = F(y) = 64.7+ (y-2005)* b, 其中速度 b = 0.42114 年以后可以使用二次曲线外推 T = f(y) = -20+ a * (y-1820)/100A2,其中加速度 a = 312114 年到 2014 年之间的外推, 可以在上面两个外推算式的基础上做一次的曲线连接, 使 之连续即可。 比如可以这么计算: T = f(y) + (y-2114)* f(2014)- F(2014)/100以下数值可供程序验证参考2008 年 T = 66.0 秒1950 年 T = 29 秒500 年T = 5710 秒三、太阳视黄经(真分点视坐标)算法基于 VSOP87 半解析法。力学时 t 为 J2000 起算的儒略世纪数,t2 = t*t,t3 = t2*t,t4 = t3*tA、 低精度算法L0(t)= .66+ 53.318*t 弧度B、 中精度算法L1(t)= .66+ 53.318*t+ 53*t*t+ 334116*cos(4.67+628.307585*t)+ 2061*cos(2.678+628.3076*t)*t / 弧度C、 高精度算法L2(t)= .66+ 53.318*t+ 52.9674*t2+ 0.00432*t3- 0.001124*t4+334166* cos( 4.669257+ 628.307585*t)+3489* cos(4.6261+1256.61517*t)+350*cos(2.744 + 575.3385*t)+342*cos(2.829 +0.3523*t)+314*cos(3.628 +7771.3771*t)+268*cos(4.418 + 786.0419*t)+234*cos(6.135 + 393.021*t)+132*cos(0.742 +1150.677*t)+127*cos(2.037 + 52.9691*t)+120*cos(1.11+157.7344*t)+ 99* cos(5.23+ 588.493*t)+ 90*cos(2.05+2.63*t )+ 86*cos(3.51+ 39.815*t)+ 78*cos(1.18+ 522.369*t)+ 75*cos(2.53+ 550.755*t)+ 51*cos(4.58+1884.923*t)+ 49*cos(4.21+ 77.552*t)+ 36*cos(2.92+0.07*t )+ 32*cos(5.85+1179.063*t)+ 28* cos( 1.9+ 79.63*t )+ 27* cos( 0.31+1097.71*t )+2060.6* cos( 2.67823+ 628.307585*t) * t+43.0* cos( 2.635 +1256.6152*t )* t+8.72* cos( 1.072 + 628.3076*t )* t28-994- 834* sin(2.1824-33.75705*t)-64 * sin(3.5069+1256.66393*t) / 弧度最后两行分别为光行差和章动四、太阳黄经速度平速度:v0 = 628.18即时 速度:v1 = 628.332+21* sin(1.527+628.307585*t)速度的单位是 弧度/儒略世纪”即 弧度/36525 天”注意,平速度比即时速度的精度要高得多,务必保留足够的有效数字,否则将带来严重的计 算误差。五、节气时刻计算以上天体黄经时间的函数,即 L = f(t),所谓的求节气时刻就是已知 L 求 t,显然这是在求 解一个关于 t 的方程。伟大的英国天文学家物理学家牛顿给岀了一种非常有效的迭代算法:牛顿求根法。用这种方法,求 t 所花费的时间仅是求 f(t)花费时间的 1.21.3 倍。设某个 节气对应的黄经为 W,那么算法如下。牛顿迭代算法设计:第 1 步迭代:t= 0第2 步迭代:t= t+( W- L0(t)/ v0第3 步迭代:t= t+( W- L1(t)/ v1(t)第4 步迭代:t= t+( W- L2(t)/ v1(t)误差:算法误差 2 分钟以内,实际找到的误差一般在 30 秒以内,平均 15 秒注意:W 指的是太阳黄经。1999 年春分对应 W=0,以后每 W 每增加 15 度对应下一个节气。 迭代的的结果是力学时,单位是儒略世纪数。最后结果还应转换为北京时间,即:JD = J 2000+ t*36525- T/86400+ 8/24最后使用儒略日数转公历”所述方法得到节气的日期和时间。六、计算结果比较为了进行误差比较,下文列岀 2007 年的 24 节气,并与寿星天文历比对。寿星天文历 是笔者制作的一款精度优于 1 秒的农历工具,已发布于互联网上,其算法与本文类似。节气本文算法寿星天年历春分 2007-03-2108:06:59 08:07:26清明 2007-04-0512:04:21 12:04:39谷雨 2007-04-2019:06:40 19:07:04立夏 2007-05-0605:20:10 05:20:23小满 2007-05-2118:11:45 18:11:56芒种 2007-06-0609:27:02 09:27:04夏至 2007-06-2202:06:22 02:06:25小暑 2007-07-0719:41:48 19:41:42大暑 2007-07-2313:00:13 13:00:10立秋 2007-08-0805:31:31 05:31:14节气本文算法寿星天年历秋分 2007-09-2317:51:31 17:51:14寒露 2007-10-0900:12:00 00:11:31霜降 2007-10-2403:15:43 03:15:24立冬 2007-11-0803:24:24 03:24:00小雪 2007-11-2300:50:03 00:49:52大雪 2007-12-0720:14:11 20:14:04冬至 2007-12-2214:07:48 14:07:47小寒 2008-01-0607:24:43 07:24:49大寒 2008-01-2100:43:28 00:43:30立春 2008-02-0419:00:09 19:00:229处暑 2007-08-2320:08:07 20:07:58白露 2007-09-0808:29:56 08:29:29雨水 2008-02-1914:49:27 14:49:32惊蛰 2008-03-0512:58:26 12:58:47
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
夏至、冬至日期的计算
二十四节气的计算
农历24节气算法
(转)谈天说地话气象(50)清明日期并非固定
天文专家:清明5日最多·台州晚报
记忆神童养成方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服