求一个计算24节气的c程序,给出计算公式也行,多谢。

[复制链接]
7398|15
 楼主| WYF1228 发表于 2008-11-9 23:40 | 显示全部楼层 |阅读模式
求一个计算24节气的c程序,给出计算公式也行,多谢。
李冬发 发表于 2008-11-9 23:54 | 显示全部楼层

节与气的时长为365.2422/24,剩下的自己算就是了

  
linqing171 发表于 2008-11-10 13:12 | 显示全部楼层

楼上正解。

不过还有个口诀是这么说的:<br />上半年逢六二十一,下半年逢八二十三,日期一般不变更,有时也差一两天。<br /><br />阳历的1月到6月的&nbsp;初六和21&nbsp;分别是节和气,<br />7月到12月的每月初八和23是对应的节气。<br /><br />比如:春分为3月21,左右误差一天。<br /><br />http://baike.baidu.com/view/10644.htm<br />  春分日期的计算&nbsp;[Y*D+C]-L<br />  公式解读:年数的后2位乘0.2422加20.646取整数减闰年数。21世纪春分的C值=20.646。<br />  举例说明:2092年春分日期=[92×.0.2422+20.646]-[92/4]=42-23=19,3月19日是春分。<br />  例外:2084年的计算结果加1日。<br /><br /><br /><br /><br />但是由于节气是农历里面来的,所以节气的计算口诀计算出来的和实际的理论值还是略有差距。具体以万年历为准。
guosr 发表于 2008-11-10 19:37 | 显示全部楼层

不是这么算的

&nbsp;&nbsp;&nbsp;&nbsp;24节气并非在365.2425天上面平均分配,而是在地球公转轨道的椭圆周上按角度平均分配。当太阳垂直照射赤道时定为“黄经零度”,即春分点。从这里出发,每前进15度就为一个节气。<br />&nbsp;&nbsp;&nbsp;&nbsp;地球公转轨道是一个椭圆,按照行星运动的开普勒定律,地球在近日点(冬至前后)的运动速度高,地球和太阳的连线扫过15度所需的时间短,因此这段时间两个节气之间的时间略短;在远日点(夏至前后),地球运动速度低,地球和太阳的连线扫过15度所需的时间长,因此这段时间两个节气之间的时间略长。<br />&nbsp;&nbsp;&nbsp;&nbsp;因此,24节气之间的间隔并非是365.2425/24,楼上几位的公式是错的。
msliang18 发表于 2008-11-10 20:49 | 显示全部楼层

查表法吧

这是以前自己完ucos时弄的一个程序,就是浪费点空间;<br />因为不是做产品,所以也没有对代码效率考虑太多,楼主自己取舍。<br /><br /><br /><br />/************************************************************************************************************/<br />/*阳历日和农历节气的对应关系&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*压缩节气数据表:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*根据规律可以得到四个数据表(每个阳历月有两个节气,每个节气需要两个数据表):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/************************************************************************************************************/<br />INT8U&nbsp;calendar_solar_term_table_01[12][33]&nbsp;=&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;{7,6,6,6,6,6,6,6,6,5,6,6,6,5,5,6,6,5,5,5,5,5,5,5,5,4,5,5},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//month&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;{5,4,5,5,5,4,4,5,5,4,4,4,4,4,4,4,4,3,4,4,4,3,3,4,4,3,3,3},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//2<br />&nbsp;&nbsp;&nbsp;&nbsp;{6,6,6,7,6,6,6,6,5,6,6,6,5,5,6,6,5,5,5,6,5,5,5,5,4,5,5,5,5},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//3<br />&nbsp;&nbsp;&nbsp;&nbsp;{5,5,6,6,5,5,5,6,5,5,5,5,4,5,5,5,4,4,5,5,4,4,4,5,4,4,4,4,5},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//4<br />&nbsp;&nbsp;&nbsp;&nbsp;{6,6,6,7,6,6,6,6,5,6,6,6,5,5,6,6,5,5,5,6,5,5,5,5,4,5,5,5,5},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//5<br />&nbsp;&nbsp;&nbsp;&nbsp;{6,6,7,7,6,6,6,7,6,6,6,6,5,6,6,6,5,5,6,6,5,5,5,6,5,5,5,5,4,5,5,5,5},//6<br />&nbsp;&nbsp;&nbsp;&nbsp;{7,8,8,8,7,7,8,8,7,7,7,8,7,7,7,7,6,7,7,7,6,6,7,7,6,6,6,7,7},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//7<br />&nbsp;&nbsp;&nbsp;&nbsp;{8,8,8,9,8,8,8,8,7,8,8,8,7,7,8,8,7,7,7,8,7,7,7,7,6,7,7,7,6,6,7,7,7},//8<br />&nbsp;&nbsp;&nbsp;&nbsp;{8,8,8,9,8,8,8,8,7,8,8,8,7,7,8,8,7,7,7,8,7,7,7,7,6,7,7,7,7},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//9<br />&nbsp;&nbsp;&nbsp;&nbsp;{9,9,9,9,8,9,9,9,8,8,9,9,8,8,8,9,8,8,8,8,7,8,8,8,7,7,8,8,8},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//10<br />&nbsp;&nbsp;&nbsp;&nbsp;{8,8,8,8,7,8,8,8,7,7,8,8,7,7,7,8,7,7,7,7,6,7,7,7,6,6,7,7,7},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//11<br />&nbsp;&nbsp;&nbsp;&nbsp;{7,8,8,8,7,7,8,8,7,7,7,8,7,7,7,7,6,7,7,7,6,6,7,7,6,6,6,7,7},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//12<br />};&nbsp;//这个数据表表示了每个月第一个节气出现的规律<br /><br />INT8U&nbsp;calendar_solar_term_year_01[12][9]&nbsp;=&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;{13,49,85,117,149,185,201,250,250},&nbsp;//month&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;{13,45,81,117,149,185,201,250,250},&nbsp;//2<br />&nbsp;&nbsp;&nbsp;&nbsp;{13,48,84,112,148,184,200,201,250},&nbsp;//3<br />&nbsp;&nbsp;&nbsp;&nbsp;{13,45,76,108,140,172,200,201,250},&nbsp;//4<br />&nbsp;&nbsp;&nbsp;&nbsp;{13,44,72,104,132,168,200,201,250},&nbsp;//5<br />&nbsp;&nbsp;&nbsp;&nbsp;{5&nbsp;,33,68,96&nbsp;,124,152,188,200,201},&nbsp;//6<br />&nbsp;&nbsp;&nbsp;&nbsp;{29,57,85,120,148,176,200,201,250},&nbsp;//7<br />&nbsp;&nbsp;&nbsp;&nbsp;{13,48,76,104,132,168,196,200,201},&nbsp;//8<br />&nbsp;&nbsp;&nbsp;&nbsp;{25,60,88,120,148,184,200,201,250},&nbsp;//9<br />&nbsp;&nbsp;&nbsp;&nbsp;{16,44,76,108,144,172,200,201,250},&nbsp;//10<br />&nbsp;&nbsp;&nbsp;&nbsp;{28,60,92,124,160,192,200,201,250},&nbsp;//11<br />&nbsp;&nbsp;&nbsp;&nbsp;{17,53,85,124,156,188,200,201,250},&nbsp;//12<br />};&nbsp;//这个数据表表示了每个月第一个节气出现规律对应的阳历年份范围<br /><br />INT8U&nbsp;calendar_solar_term_table_02[12][29]&nbsp;=&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;{21,21,21,21,21,20,21,21,21,20,20,21,21,20,20,20,20,20,20,20,20,19,20,20,20,19,19,20},<br />&nbsp;&nbsp;&nbsp;&nbsp;{20,19,19,20,20,19,19,19,19,19,19,19,19,18,19,19,19,18,18,19,19,18,18,18,18,18,18,18},<br />&nbsp;&nbsp;&nbsp;&nbsp;{21,21,21,22,21,21,21,21,20,21,21,21,20,20,21,21,20,20,20,21,20,20,20,20,19,20,20,20,20},<br />&nbsp;&nbsp;&nbsp;&nbsp;{20,21,21,21,20,20,21,21,20,20,20,21,20,20,20,20,19,20,20,20,19,19,20,20,19,19,19,20,20},<br />&nbsp;&nbsp;&nbsp;&nbsp;{21,22,22,22,21,21,22,22,21,21,21,22,21,21,21,21,20,21,21,21,20,20,21,21,20,20,20,21,21},<br />&nbsp;&nbsp;&nbsp;&nbsp;{22,22,22,22,21,22,22,22,21,21,22,22,21,21,21,22,21,21,21,21,20,21,21,21,20,20,21,21,21},<br />&nbsp;&nbsp;&nbsp;&nbsp;{23,23,24,24,23,23,23,24,23,23,23,23,22,23,23,23,22,22,23,23,22,22,22,23,22,22,22,22,23},<br />&nbsp;&nbsp;&nbsp;&nbsp;{23,24,24,24,23,23,24,24,23,23,23,24,23,23,23,23,22,23,23,23,22,22,23,23,22,22,22,23,23},<br />&nbsp;&nbsp;&nbsp;&nbsp;{23,24,24,24,23,23,24,24,23,23,23,24,23,23,23,23,22,23,23,23,22,22,23,23,22,22,22,23,23},<br />&nbsp;&nbsp;&nbsp;&nbsp;{24,24,24,24,23,24,24,24,23,23,24,24,23,23,23,24,23,23,23,23,22,23,23,23,22,22,23,23,23},<br />&nbsp;&nbsp;&nbsp;&nbsp;{23,23,23,23,22,23,23,23,22,22,23,23,22,22,22,23,22,22,22,22,21,22,22,22,21,21,22,22,22},<br />&nbsp;&nbsp;&nbsp;&nbsp;{22,22,23,23,22,22,22,23,22,22,22,22,21,22,22,22,21,21,22,22,21,21,21,22,21,21,21,21,22},<br /><br />};&nbsp;//这个数据表表示了每个月第二个节气出现的规律<br /><br />INT8U&nbsp;calendar_solar_term_year_02[12][8]&nbsp;=&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;{13,45,81,113,149,185,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{21,57,93,125,161,193,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{21,56,88,120,152,188,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{21,49,81,116,144,176,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{17,49,77,112,140,168,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{28,60,88,116,148,180,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{25,53,84,112,144,172,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{29,57,89,120,148,180,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{17,45,73,108,140,168,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{28,60,92,124,160,192,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{16,44,80,112,148,180,200,201},<br />&nbsp;&nbsp;&nbsp;&nbsp;{17,53,88,120,156,188,200,201},<br />};//这个数据表表示了每个月第二个节气出现规律对应的阳历年份范围<br /><br /><br />/************************************************************************************************************/<br />/*函&nbsp;&nbsp;&nbsp;&nbsp;数:calendar_calculate_solar_term_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*输&nbsp;&nbsp;&nbsp;&nbsp;入:solar_year,solar_month&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*输&nbsp;&nbsp;&nbsp;&nbsp;出:第一个节气出现的日期;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*函数说明:本函数用于计算给定年和月的第一个农历节日出现的节气,输入的年按-1900给定&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个算法采用条件规律算法.给定的年和月信息是阳历,返回的日期也为阳历&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/************************************************************************************************************/<br />INT8U&nbsp;calendar_calculate_solar_term_1(INT8U&nbsp;solar_year,&nbsp;INT8U&nbsp;solar_month)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;done_index;<br />&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;solar_term;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;done_index&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(solar_year&nbsp;&gt=&nbsp;calendar_solar_term_year_01[solar_month&nbsp;-&nbsp;1][done_index])<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done_index++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(done_index&gt8)&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//以防设置的年不在数据表格范围内;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;solar_term&nbsp;=&nbsp;calendar_solar_term_table_01[solar_month&nbsp;-&nbsp;1][4*done_index&nbsp;+&nbsp;solar_year%4];<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if((solar_year&nbsp;==&nbsp;121)&&(solar_month&nbsp;==&nbsp;4))solar_term&nbsp;=&nbsp;5;<br />&nbsp;&nbsp;&nbsp;&nbsp;if((solar_year&nbsp;==&nbsp;132)&&(solar_month&nbsp;==&nbsp;4))solar_term&nbsp;=&nbsp;5;<br />&nbsp;&nbsp;&nbsp;&nbsp;if((solar_year&nbsp;==&nbsp;194)&&(solar_month&nbsp;==&nbsp;6))solar_term&nbsp;=&nbsp;6;<br />&nbsp;&nbsp;&nbsp;&nbsp;return(solar_term);<br />}<br /><br />/************************************************************************************************************/<br />/*函&nbsp;&nbsp;&nbsp;&nbsp;数:calendar_calculate_solar_term_2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*输&nbsp;&nbsp;&nbsp;&nbsp;入:solar_year,solar_month&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*输&nbsp;&nbsp;&nbsp;&nbsp;出:第二个节气出现的日期;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*函数说明:本函数用于计算给定年和月的第二个农历节日出现的节气,输入的年按-1900给定&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个算法采用条件规律算法.给定的年和月信息是阳历,返回的日期也为阳历&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/************************************************************************************************************/<br />INT8U&nbsp;calendar_calculate_solar_term_2(INT8U&nbsp;solar_year,&nbsp;INT8U&nbsp;solar_month)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;done_index;<br />&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;solar_term;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;done_index&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(solar_year&nbsp;&gt=&nbsp;calendar_solar_term_year_02[solar_month&nbsp;-&nbsp;1][done_index])<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done_index++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(done_index&gt8)&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//以防设置的年不在数据表格范围内;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;solar_term&nbsp;=&nbsp;calendar_solar_term_table_02[solar_month&nbsp;-&nbsp;1][4*done_index&nbsp;+&nbsp;solar_year%4];<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if((solar_year&nbsp;==&nbsp;171)&&(solar_month&nbsp;==&nbsp;3))solar_term&nbsp;=&nbsp;21;<br />&nbsp;&nbsp;&nbsp;&nbsp;if((solar_year&nbsp;==&nbsp;181)&&(solar_month&nbsp;==&nbsp;5))solar_term&nbsp;=&nbsp;21;<br />&nbsp;&nbsp;&nbsp;&nbsp;return(solar_term);<br />}
msliang18 发表于 2008-11-10 20:53 | 显示全部楼层

声明一下

以上代码非本人原创,至于出处,隔离较长时间,记不起来了。
linqing171 发表于 2008-11-11 14:57 | 显示全部楼层

开普勒第几定律有用?

1、近地点和远地点的具体差距为平均距离的偏差2%以内。<br />2、根据开普勒第三定律,地球单位时间扫过的扇区是等面积的,所以角度乘以R的平方是常数,推出地球角速度最大变化小于&nbsp;4%以内。<br />3、平均计算的算法,冬至和夏至是准的,春秋分一个超前到最大,一个滞后到最大。<br /><br />经过以上的基本知识,可以推测出最大偏差90*4%=3.6天。理论实际值应该是1到两天。<br /><br />楼上的应该是&nbsp;《万年历》&nbsp;《周易》&nbsp;《奇门遁甲》&nbsp;等历法的书里面的公式搞出来的表吧,不过确实压缩后看不懂了。<br /><br />2000年&nbsp;1月&nbsp;3日&nbsp;13时&nbsp;近日点&nbsp;日心距au=&nbsp;.983321418<br />2000年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;8时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016741091<br />2001年&nbsp;1月&nbsp;4日&nbsp;17时&nbsp;近日点&nbsp;日心距au=&nbsp;.983286028<br />2001年&nbsp;7月&nbsp;4日&nbsp;22时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016642627<br />2002年&nbsp;1月&nbsp;2日&nbsp;22时&nbsp;近日点&nbsp;日心距au=&nbsp;.983289783<br />2002年&nbsp;7月&nbsp;6日&nbsp;12时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016688203<br />2003年&nbsp;1月&nbsp;4日&nbsp;13时&nbsp;近日点&nbsp;日心距au=&nbsp;.983320381<br />2003年&nbsp;7月&nbsp;4日&nbsp;14时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016728230<br />2004年&nbsp;1月&nbsp;5日&nbsp;&nbsp;&nbsp;2时&nbsp;近日点&nbsp;日心距au=&nbsp;.983264836<br />2004年&nbsp;7月&nbsp;5日&nbsp;19时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016693679<br />2005年&nbsp;1月&nbsp;2日&nbsp;&nbsp;&nbsp;9时&nbsp;近日点&nbsp;日心距au=&nbsp;.983296823<br />2005年&nbsp;7月&nbsp;5日&nbsp;13时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016741599<br />2006年&nbsp;1月&nbsp;4日&nbsp;23时&nbsp;近日点&nbsp;日心距au=&nbsp;.983326979<br />2006年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;7时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016697260<br />2007年&nbsp;1月&nbsp;4日&nbsp;&nbsp;&nbsp;4时&nbsp;近日点&nbsp;日心距au=&nbsp;.983260183<br />2007年&nbsp;7月&nbsp;7日&nbsp;&nbsp;&nbsp;8时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016705947<br />2008年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;8时&nbsp;近日点&nbsp;日心距au=&nbsp;.983280055<br />2008年&nbsp;7月&nbsp;4日&nbsp;16时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016753512<br />2009年&nbsp;1月&nbsp;4日&nbsp;23时&nbsp;近日点&nbsp;日心距au=&nbsp;.983273035<br />2009年&nbsp;7月&nbsp;4日&nbsp;10时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016666420<br />2010年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;8时&nbsp;近日点&nbsp;日心距au=&nbsp;.983289667<br />2010年&nbsp;7月&nbsp;6日&nbsp;19时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016701958<br />2011年&nbsp;1月&nbsp;4日&nbsp;&nbsp;&nbsp;3时&nbsp;近日点&nbsp;日心距au=&nbsp;.983341273<br />2011年&nbsp;7月&nbsp;4日&nbsp;23时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016740385<br />2012年&nbsp;1月&nbsp;5日&nbsp;&nbsp;&nbsp;9时&nbsp;近日点&nbsp;日心距au=&nbsp;.983284094<br />2012年&nbsp;7月&nbsp;5日&nbsp;12时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016675059<br />2013年&nbsp;1月&nbsp;2日&nbsp;13时&nbsp;近日点&nbsp;日心距au=&nbsp;.983290474<br />2013年&nbsp;7月&nbsp;5日&nbsp;23时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016708497<br />2014年&nbsp;1月&nbsp;4日&nbsp;20时&nbsp;近日点&nbsp;日心距au=&nbsp;.983334719<br />2014年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;8时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016681629<br />2015年&nbsp;1月&nbsp;4日&nbsp;15时&nbsp;近日点&nbsp;日心距au=&nbsp;.983277391<br />2015年&nbsp;7月&nbsp;7日&nbsp;&nbsp;&nbsp;4时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016682122<br />2016年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;7时&nbsp;近日点&nbsp;日心距au=&nbsp;.983303941<br />2016年&nbsp;7月&nbsp;5日&nbsp;&nbsp;&nbsp;0时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016750939<br />2017年&nbsp;1月&nbsp;4日&nbsp;22时&nbsp;近日点&nbsp;日心距au=&nbsp;.983309436<br />2017年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;4时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016675594<br />2018年&nbsp;1月&nbsp;3日&nbsp;14时&nbsp;近日点&nbsp;日心距au=&nbsp;.983284269<br />2018年&nbsp;7月&nbsp;7日&nbsp;&nbsp;&nbsp;1时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016696059<br />2019年&nbsp;1月&nbsp;3日&nbsp;13时&nbsp;近日点&nbsp;日心距au=&nbsp;.983301165<br />2019年&nbsp;7月&nbsp;5日&nbsp;&nbsp;&nbsp;6时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016754346<br />2020年&nbsp;1月&nbsp;5日&nbsp;16时&nbsp;近日点&nbsp;日心距au=&nbsp;.983243565<br />2020年&nbsp;7月&nbsp;4日&nbsp;20时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016694252<br />2021年&nbsp;1月&nbsp;2日&nbsp;22时&nbsp;近日点&nbsp;日心距au=&nbsp;.983257061<br />2021年&nbsp;7月&nbsp;6日&nbsp;&nbsp;&nbsp;6时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016729225<br />2022年&nbsp;1月&nbsp;4日&nbsp;15时&nbsp;近日点&nbsp;日心距au=&nbsp;.983336540<br />2022年&nbsp;7月&nbsp;4日&nbsp;15时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016715374<br />2023年&nbsp;1月&nbsp;5日&nbsp;&nbsp;&nbsp;0时&nbsp;近日点&nbsp;日心距au=&nbsp;.983295578<br />2023年&nbsp;7月&nbsp;7日&nbsp;&nbsp;&nbsp;4时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016680584<br />2024年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;9时&nbsp;近日点&nbsp;日心距au=&nbsp;.983306994<br />2024年&nbsp;7月&nbsp;5日&nbsp;13时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016725489<br />2025年&nbsp;1月&nbsp;4日&nbsp;21时&nbsp;近日点&nbsp;日心距au=&nbsp;.983327407<br />2025年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;4时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016643732<br />2026年&nbsp;1月&nbsp;4日&nbsp;&nbsp;&nbsp;1时&nbsp;近日点&nbsp;日心距au=&nbsp;.983302057<br />2026年&nbsp;7月&nbsp;7日&nbsp;&nbsp;&nbsp;2时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016643978<br />2027年&nbsp;1月&nbsp;3日&nbsp;11时&nbsp;近日点&nbsp;日心距au=&nbsp;.983333464<br />2027年&nbsp;7月&nbsp;5日&nbsp;13时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016728918<br />2028年&nbsp;1月&nbsp;5日&nbsp;20时&nbsp;近日点&nbsp;日心距au=&nbsp;.983307358<br />2028年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;6时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016679769<br />2029年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;2时&nbsp;近日点&nbsp;日心距au=&nbsp;.983291733<br />2029年&nbsp;7月&nbsp;6日&nbsp;13时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016712715&nbsp;<br />2030年&nbsp;1月&nbsp;3日&nbsp;18时&nbsp;近日点&nbsp;日心距au=&nbsp;.983341787<br />2030年&nbsp;7月&nbsp;4日&nbsp;21时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016722650<br />2031年&nbsp;1月&nbsp;5日&nbsp;&nbsp;&nbsp;5时&nbsp;近日点&nbsp;日心距au=&nbsp;.983266417<br />2031年&nbsp;7月&nbsp;6日&nbsp;15时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016688174<br />2032年&nbsp;1月&nbsp;3日&nbsp;13时&nbsp;近日点&nbsp;日心距au=&nbsp;.983246889<br />2032年&nbsp;7月&nbsp;5日&nbsp;20时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016750975<br />2033年&nbsp;1月&nbsp;4日&nbsp;20时&nbsp;近日点&nbsp;日心距au=&nbsp;.983298950<br />2033年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;5时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016693615<br />2034年&nbsp;1月&nbsp;4日&nbsp;13时&nbsp;近日点&nbsp;日心距au=&nbsp;.983289322<br />2034年&nbsp;7月&nbsp;7日&nbsp;&nbsp;&nbsp;3时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016670320<br />2035年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;9时&nbsp;近日点&nbsp;日心距au=&nbsp;.983324943<br />2035年&nbsp;7月&nbsp;6日&nbsp;&nbsp;&nbsp;2时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016740637<br />2036年&nbsp;1月&nbsp;5日&nbsp;22时&nbsp;近日点&nbsp;日心距au=&nbsp;.983320205<br />2036年&nbsp;7月&nbsp;4日&nbsp;&nbsp;&nbsp;5时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016663277<br />2037年&nbsp;1月&nbsp;3日&nbsp;12时&nbsp;近日点&nbsp;日心距au=&nbsp;.983288904<br />2037年&nbsp;7月&nbsp;6日&nbsp;20时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016665145<br />2038年&nbsp;1月&nbsp;3日&nbsp;13时&nbsp;近日点&nbsp;日心距au=&nbsp;.983354888<br />2038年&nbsp;7月&nbsp;5日&nbsp;&nbsp;&nbsp;4时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016690873<br />2039年&nbsp;1月&nbsp;5日&nbsp;15时&nbsp;近日点&nbsp;日心距au=&nbsp;.983311263<br />2039年&nbsp;7月&nbsp;5日&nbsp;21时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016658816<br />2040年&nbsp;1月&nbsp;3日&nbsp;20时&nbsp;近日点&nbsp;日心距au=&nbsp;.983293650<br />2040年&nbsp;7月&nbsp;6日&nbsp;&nbsp;&nbsp;3时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016727117<br />2041年&nbsp;1月&nbsp;4日&nbsp;&nbsp;&nbsp;6时&nbsp;近日点&nbsp;日心距au=&nbsp;.983347104<br />2041年&nbsp;7月&nbsp;4日&nbsp;10时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016688660<br />2042年&nbsp;1月&nbsp;4日&nbsp;17时&nbsp;近日点&nbsp;日心距au=&nbsp;.983301446<br />2042年&nbsp;7月&nbsp;6日&nbsp;21时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016655394<br />2043年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;6时&nbsp;近日点&nbsp;日心距au=&nbsp;.983288203<br />2043年&nbsp;7月&nbsp;6日&nbsp;10时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016744148<br />2044年&nbsp;1月&nbsp;5日&nbsp;21时&nbsp;近日点&nbsp;日心距au=&nbsp;.983289623<br />2044年&nbsp;7月&nbsp;3日&nbsp;23时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016695986<br />2045年&nbsp;1月&nbsp;3日&nbsp;23时&nbsp;近日点&nbsp;日心距au=&nbsp;.983265338<br />2045年&nbsp;7月&nbsp;6日&nbsp;21时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016688827<br />2046年&nbsp;1月&nbsp;3日&nbsp;&nbsp;&nbsp;9时&nbsp;近日点&nbsp;日心距au=&nbsp;.983345053<br />2046年&nbsp;7月&nbsp;5日&nbsp;14时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016726549<br />2047年&nbsp;1月&nbsp;5日&nbsp;20时&nbsp;近日点&nbsp;日心距au=&nbsp;.983321594<br />2047年&nbsp;7月&nbsp;5日&nbsp;15时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016672803<br />2048年&nbsp;1月&nbsp;4日&nbsp;&nbsp;&nbsp;2时&nbsp;近日点&nbsp;日心距au=&nbsp;.983281772<br />2048年&nbsp;7月&nbsp;6日&nbsp;13时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016707153<br />2049年&nbsp;1月&nbsp;3日&nbsp;18时&nbsp;近日点&nbsp;日心距au=&nbsp;.983334217<br />2049年&nbsp;7月&nbsp;4日&nbsp;17时&nbsp;远日点&nbsp;日心距au=&nbsp;1.016672172&nbsp;
linqing171 发表于 2008-11-11 15:14 | 显示全部楼层

看看误差多大,数据来了

2008年二十四节气时间表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />节气&nbsp;&nbsp;&nbsp;&nbsp;日期+时间&nbsp;&nbsp;&nbsp;&nbsp;偏差&nbsp;&nbsp;&nbsp;&nbsp;按365.2522的误差&nbsp;&nbsp;&nbsp;&nbsp;误差累积<br />小寒&nbsp;&nbsp;&nbsp;&nbsp;2008-1-5&nbsp;13:10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />大寒&nbsp;&nbsp;&nbsp;&nbsp;2008-1-20&nbsp;6:29&nbsp;&nbsp;&nbsp;&nbsp;14.72152778&nbsp;&nbsp;&nbsp;&nbsp;-0.497313889&nbsp;&nbsp;&nbsp;&nbsp;0<br />立春&nbsp;&nbsp;&nbsp;&nbsp;2008-2-4&nbsp;19:03&nbsp;&nbsp;&nbsp;&nbsp;15.52361111&nbsp;&nbsp;&nbsp;&nbsp;0.304769444&nbsp;&nbsp;&nbsp;&nbsp;-0.497313889<br />雨水&nbsp;&nbsp;&nbsp;&nbsp;2008-2-19&nbsp;14:57&nbsp;&nbsp;&nbsp;&nbsp;14.82916667&nbsp;&nbsp;&nbsp;&nbsp;-0.389675&nbsp;&nbsp;&nbsp;&nbsp;-0.192544444<br />惊蛰&nbsp;&nbsp;&nbsp;&nbsp;2008-3-5&nbsp;13:13&nbsp;&nbsp;&nbsp;&nbsp;14.92777778&nbsp;&nbsp;&nbsp;&nbsp;-0.291063889&nbsp;&nbsp;&nbsp;&nbsp;-0.582219444<br />春分&nbsp;&nbsp;&nbsp;&nbsp;2008-3-20&nbsp;14:10&nbsp;&nbsp;&nbsp;&nbsp;15.03958333&nbsp;&nbsp;&nbsp;&nbsp;-0.179258333&nbsp;&nbsp;&nbsp;&nbsp;-0.873283333<br />清明&nbsp;&nbsp;&nbsp;&nbsp;2008-4-4&nbsp;18:16&nbsp;&nbsp;&nbsp;&nbsp;15.17083333&nbsp;&nbsp;&nbsp;&nbsp;-0.048008333&nbsp;&nbsp;&nbsp;&nbsp;-1.052541667<br />谷雨&nbsp;&nbsp;&nbsp;&nbsp;2008-4-20&nbsp;1:29&nbsp;&nbsp;&nbsp;&nbsp;15.30069444&nbsp;&nbsp;&nbsp;&nbsp;0.081852778&nbsp;&nbsp;&nbsp;&nbsp;-1.10055<br />立夏&nbsp;&nbsp;&nbsp;&nbsp;2008-5-5&nbsp;11:50&nbsp;&nbsp;&nbsp;&nbsp;15.43125&nbsp;&nbsp;&nbsp;&nbsp;0.212408333&nbsp;&nbsp;&nbsp;&nbsp;-1.018697222<br />小满&nbsp;&nbsp;&nbsp;&nbsp;2008-5-19&nbsp;0:51&nbsp;&nbsp;&nbsp;&nbsp;13.54236111&nbsp;&nbsp;&nbsp;&nbsp;-1.676480556&nbsp;&nbsp;&nbsp;&nbsp;-0.806288889<br />芒种&nbsp;&nbsp;&nbsp;&nbsp;2008-6-5&nbsp;16:12&nbsp;&nbsp;&nbsp;&nbsp;17.63958333&nbsp;&nbsp;&nbsp;&nbsp;2.420741667&nbsp;&nbsp;&nbsp;&nbsp;-2.482769444<br />夏至&nbsp;&nbsp;&nbsp;&nbsp;2008-6-21&nbsp;8:57&nbsp;&nbsp;&nbsp;&nbsp;15.69791667&nbsp;&nbsp;&nbsp;&nbsp;0.479075&nbsp;&nbsp;&nbsp;&nbsp;-0.062027778<br />小暑&nbsp;&nbsp;&nbsp;&nbsp;2008-7-7&nbsp;2:35&nbsp;&nbsp;&nbsp;&nbsp;15.73472222&nbsp;&nbsp;&nbsp;&nbsp;0.515880556&nbsp;&nbsp;&nbsp;&nbsp;0.417047222<br />大暑&nbsp;&nbsp;&nbsp;&nbsp;2008-7-22&nbsp;19:50&nbsp;&nbsp;&nbsp;&nbsp;15.71875&nbsp;&nbsp;&nbsp;&nbsp;0.499908333&nbsp;&nbsp;&nbsp;&nbsp;0.932927778<br />立秋&nbsp;&nbsp;&nbsp;&nbsp;2008-8-7&nbsp;12:18&nbsp;&nbsp;&nbsp;&nbsp;15.68611111&nbsp;&nbsp;&nbsp;&nbsp;0.467269444&nbsp;&nbsp;&nbsp;&nbsp;1.432836111<br />处暑&nbsp;&nbsp;&nbsp;&nbsp;2008-8-23&nbsp;2:46&nbsp;&nbsp;&nbsp;&nbsp;15.60277778&nbsp;&nbsp;&nbsp;&nbsp;0.383936111&nbsp;&nbsp;&nbsp;&nbsp;1.900105556<br />白露&nbsp;&nbsp;&nbsp;&nbsp;2008-9-7&nbsp;15:02&nbsp;&nbsp;&nbsp;&nbsp;15.51111111&nbsp;&nbsp;&nbsp;&nbsp;0.292269444&nbsp;&nbsp;&nbsp;&nbsp;2.284041667<br />秋分&nbsp;&nbsp;&nbsp;&nbsp;2008-9-22&nbsp;0:10&nbsp;&nbsp;&nbsp;&nbsp;14.38055556&nbsp;&nbsp;&nbsp;&nbsp;-0.838286111&nbsp;&nbsp;&nbsp;&nbsp;2.576311111<br />寒露&nbsp;&nbsp;&nbsp;&nbsp;2008-10-8&nbsp;6:26&nbsp;&nbsp;&nbsp;&nbsp;16.26111111&nbsp;&nbsp;&nbsp;&nbsp;1.042269444&nbsp;&nbsp;&nbsp;&nbsp;1.738025<br />霜降&nbsp;&nbsp;&nbsp;&nbsp;2008-10-23&nbsp;9:16&nbsp;&nbsp;&nbsp;&nbsp;15.11805556&nbsp;&nbsp;&nbsp;&nbsp;-0.100786111&nbsp;&nbsp;&nbsp;&nbsp;2.780294444<br />立冬&nbsp;&nbsp;&nbsp;&nbsp;2008-11-7&nbsp;9:21&nbsp;&nbsp;&nbsp;&nbsp;15.00347222&nbsp;&nbsp;&nbsp;&nbsp;-0.215369444&nbsp;&nbsp;&nbsp;&nbsp;2.679508333<br />小雪&nbsp;&nbsp;&nbsp;&nbsp;2008-11-22&nbsp;6:38&nbsp;&nbsp;&nbsp;&nbsp;14.88680556&nbsp;&nbsp;&nbsp;&nbsp;-0.332036111&nbsp;&nbsp;&nbsp;&nbsp;2.464138889<br />大雪&nbsp;&nbsp;&nbsp;&nbsp;2008-12-7&nbsp;2:01&nbsp;&nbsp;&nbsp;&nbsp;14.80763889&nbsp;&nbsp;&nbsp;&nbsp;-0.411202778&nbsp;&nbsp;&nbsp;&nbsp;2.132102778<br />冬至&nbsp;&nbsp;&nbsp;&nbsp;2008-12-21&nbsp;10:51&nbsp;&nbsp;&nbsp;&nbsp;14.36805556&nbsp;&nbsp;&nbsp;&nbsp;-0.850786111&nbsp;&nbsp;&nbsp;&nbsp;1.7209<br />
linqing171 发表于 2008-11-11 15:21 | 显示全部楼层

刚又搜了一下,专家说我的数据是错的。

http://sztqb.sznews.com/html/2008-01/21/content_37638.htm<br />
李冬发 发表于 2008-11-12 17:25 | 显示全部楼层

4楼的guosr,晕。

地球公转轨道的短半轴为14,900万千米,长半轴为14,958万千米。你说说直接等分能有多大的误差?!<br />
guosr 发表于 2008-11-13 13:39 | 显示全部楼层

回楼上:误差大到足以影响历法

&nbsp;&nbsp;&nbsp;&nbsp;一两天的误差从“年”的尺度上看,的确不算多大的误差,但历法讲究精确,古代的人恐怕都不能容忍一两天的历法误差,更何况是现代人。如果你买一份日历,立春、清明、夏至、冬至之类的节气标注错误,你感觉如何?<br />&nbsp;&nbsp;&nbsp;&nbsp;另外,节气并非指某一天,而是某个时刻,例如冬至就是太阳直射南回归线的那一瞬间,这一瞬间所在的那一天被称为冬至日。假设某个节气出现在凌晨零点左右,那么几秒钟的误差,就会导致日历上标注的节气出现查错。从这个角度讲,中国和韩国、日本的农历是不同的,它们之间可能出现一天的误差,因为韩国、日本在东九时区,而我们是东八区。<br />&nbsp;&nbsp;&nbsp;&nbsp;地球公转轨道是椭圆,导致我们国家的农历历法上一个很有意思的事情:闰月多出现在农历5、6、7、8月份,而不会出现在十一、腊月、正月。当某个农历月份中,只有一个节气的时候,这个月被称为上个月的闰月。因为地球在远日点的时候速度较低,转过15度角需要的时间稍长,因此可能在此期间出现一个农历月份无法容纳两个节气,因此闰月多出现在夏季。而在地球的近日点,地球运动速度较高,转过15度角需要的时间稍短,总可以在一个月内容纳两个节气,因此冬季很难出现闰月。基于这一点,大家就别指望出现闰正月了,过两个农历新年是不可能的。
高勇 发表于 2008-11-13 14:51 | 显示全部楼层

二十四节气并非农历里边来的

二十四节气并不是农历里边来的,农历主要以月亮为参照,但二十四节气是以黄道面和赤道面的交点来定春分和秋分。其它节气则是以地球围绕太阳每转15度为了个节气。这样二十四节气跟农历扯不是关系。<br />并且二十四节气的规律:“上半年逢七十二十一,下半年逢八二十三”说的也是阳历。
高勇 发表于 2008-11-13 15:01 | 显示全部楼层

我也找到一份资料

  <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200811/20081113145826872.pdf'>https://bbs.21ic.com/upfiles/img/200811/20081113145826872.pdf</a>
guosr 发表于 2008-11-13 20:53 | 显示全部楼层

还是数学计算最能说明问题

一年是365.2422天,即T0=365.2422*24*60*60秒。<br /><img src="https://bbs.21ic.com/upfiles/img/200811/20081113204921372.jpg"><br /><br />这就是地球从近日点(注意近日点并非冬至时刻,一般在一月初)转过角度θ所需要的时间,如果知道某个节气的准确时刻,那就可以推算出此后节气的准确时刻。地球一个节气绕太阳转0.2618弧度(即15度),把0.2618*6带入上式的积分上限,可以看到累计6个节气之后,跟365.2422*6/24的平均算法相比,误差已经累计达到46.6小时,差不多两天。<br />把上面的表达式积分上限θ取2π,就是一年的时间长度,可以看到跟真实的回归年365.2422天相比,误差了188秒,这是因为地球轨道的基本参数的精度不够造成的,所以大家切不可把这作为精确计算的依据。<br />如果是做万年历,还是直接从历书上弄个查找表,程序查表最简单。<br /><br />
linqing171 发表于 2008-11-15 19:45 | 显示全部楼层

46.6小时,你计算的准么?

我用最大偏差来计算,也只不过三天多而已。<br />你用微积分做出来的还有两天?<br /><br />最好是谁把今年的正确的节气贴出来,我计算一下,看看误差有多大。
高勇 发表于 2008-11-17 16:33 | 显示全部楼层

此贴讨论的问题

严重关注此贴讨论的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部