- 67浏览
- 2022-06-27
太阳从黄经零度起,沿黄经每运行15度所经历的时日称为“一个节气”。每年运行360度,共经历24个节气,每月2个。其中,每月第一个节气为“节气”,即:立春、惊蛰、清明、立夏、芒种、小暑、立秋、白露、寒露、立冬、大雪和小寒等12个节气;每月的第二个节气为“中气”,即:雨水、春分、谷雨、小满、夏至、大暑、处暑、秋分、霜降、小雪、冬至和大寒等12个节气。“节气” 和“中气”交替出现,各历时15天,现在人们已经把“节气”和“中气”统称为“节气”。
二十四节气计算公式:
立春日期的计算
计算公式:[Y*D+C]-L
公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。21世纪C值=3.87,22世纪C值=4.15。
举例说明:2058年立春日期的计算步骤[58×.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年雨水日期=[8×.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年惊蛰日期=[88×.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年春分日期=[92×.0.2422+20.646]-[92/4]=42-23=19,3月19日是春分。
例外:2084年的计算结果加1日。
清明节日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=4.81,20世纪=5.59。
举例说明:2088年清明日期=[88×.0.2422+4.81]-[88/4]=26-22=4,4月4日是清明。
例外:无。
谷雨节日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=20.1,20世纪=20.888。
举例说明:2088年谷雨日期=[88×.0.2422+20.1]-[88/4]=41-22=19,4月19日是谷雨。
例外:无。
立夏日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=5.52,20世纪=6.318。
举例说明:2088年立夏日期=[88×.0.2422+5.52]-[88/4]=26-22=4,5月4日是立夏。
例外:1911年的计算结果加1日。
小满日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=21.04,20世纪=21.86。
举例说明:2088年小满日期=[88×.0.2422+21.04]-[88/4]=42-22=20,5月20日小满。
例外:2008年的计算结果加1日。
芒种日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=5.678,20世纪=6.5。
举例说明:2088年芒种日期=[88×.0.2422+5.678]-[88/4]=26-22=4,6月4日芒种。
例外:1902年的计算结果加1日。
夏至日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=21.37,20世纪=22.20。
举例说明:2088年夏至日期=[88×.0.2422+21.37]-[88/4]=42-22=20,6月20日夏至。
例外:1928年的计算结果加1日。
小暑日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.108,20世纪=7.928。
举例说明:2088年小暑日期= [88×0.2422+7.108]-[88/4]=28-22=6,7月6日是小暑。
例外:1925年和2016年的计算结果加1日。
大暑日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=22.83,20世纪=23.65。
举例说明:2088年大暑日期= [88×0.2422+22.83]-[88/4]=44-22=22,7月22日大暑。
例外:1922年的计算结果加1日。
立秋日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.5,20世纪=8.35。
举例说明:2088年立秋日期=[88×0.2422+7.5]-[88/4]=28-22=6,8月6日是立秋。
例外:2002年的计算结果加1日。
处暑日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=23.13,20世纪=23.95。
举例说明:2088年处暑日期=[88×0.2422+23.13]-[88/4]=44-22=22,8月22日处暑。
例外:无。
白露日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.646,20世纪=8.44。
举例说明:2088年白露日期=[88×0.2422+7.646]-[88/4]=28-22=6,9月6日是白露。
例外:1927年的计算结果加1日。
秋分日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=23.042,20世纪=23.822。
举例说明:2088年秋分日期=[8×.0.2422+23.042]-[88/4]=44-22=22,9月22日是秋分。
例外:1942年的计算结果加1日。
寒露日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=8.318,20世纪=9.098。
举例说明:2088年寒露日期=[88×0.2422+8.318]-[88/4]=29-22=7,10月7日是寒露。
例外:无。
霜降日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=23.438,20世纪=24.218。
举例说明:2088年霜降日期=[88×0.2422+23.438]-[88/4]=44-22=22,10月22日霜降。
例外:2089年的计算结果加1日。
立冬日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.438,20世纪=8.218。
举例说明:2088年立冬日期=[88×0.2422+7.438]-[88/4]=28-22=6,11月6日是立冬。
例外:2089年的计算结果加1日。
小雪日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=22.36,20世纪=23.08。
举例说明:2088年小雪日期=[88×0.2422+22.36]-[88/4]=43-22=21,11月21日小雪。
例外:1978年的计算结果加1日。
大雪日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.18,20世纪=7.9。
举例说明:2088年大雪日期=[88×0.2422+7.18]-[88/4]=28-22=6,12月6日大雪。
例外:1954年的计算结果加1日。
冬至日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=21.94,20世纪=22.60。
举例说明:2088年冬至日期=[88×0.2422+21.94]-[88/4]=43-22=21,12月21日冬至。
例外:1918年和2021年的计算结果减1日。
小寒日期的计算 [Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=5.4055,20世纪=6.11。
举例说明:1988年小寒日期=[88×.0.2422+6.11]-[(88-1)/4]=27-21=6,1月6日小寒。
例外:1982年计算结果加1日,2019年减1日。
大寒日期的计算 [Y*D+C]-L
公式解读:Y=年数的后2位,D=0.2422,L=闰年数,21世纪C=20.12,20世纪C=20.84。
举例说明:2089年大寒日期=[89×0.2422+20.12]-[(89-1)/4]=41-22=19,1月19日大寒。
例外:2082年的计算结果加1日,20世纪无。
public function get_solar(){ header("Content-Type:text/html;charset=utf-8"); $year=date('Y');//获取年份Y表示四位年份2020 y表示两位年份20年 $month=date('m');//获取月份 $day=date('d');//获取当前日期 //获取当前年份的后两位,若使用Y需要使用下面的substr来截取日期。 $years = substr($year,-2)+0; //根据条件来筛选 数组第二位表示特殊年份 第三位表示特殊年份需要加1还是减1 $parameter= array( array(5.4055,2019,-1),//小寒 array(20.12,2082,1),//大寒 array(3.87),//立春 array(18.74,2026,-1),//雨水 array(5.63),//惊蛰 array(20.646,2084,1),//春分 array(4.81),//清明 array(20.1),//谷雨 array(5.52,1911,1),//立夏 array(21.04,2008,1),//小满 array(5.678,1902,1),//芒种 array(21.37,1928,1),//夏至 array(7.108,2016,1),//小暑 array(22.83,1922,1),//大暑 array(7.5,2002,1),//立秋 array(23.13),//处暑 array(7.646,1927,1),//白露 array(23.042,1942,1),//秋分 array(8.318),//寒露 array(23.438,2089,1),//霜降 array(7.438,2089,1),//立冬 array(22.36,1978,1),//小雪 array(7.18,1954,1),//大雪 array(21.94,2021,-1)//冬至 ); $term_name = array( "小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨", "立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑", "白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"); $index= ($month-1)*2;//获取数组中的键 $_leap_value = floor(($years-1)/4); $day1 = floor($years*0.2422+$parameter[$index][0])-$_leap_value;//获取这个月的第一个节气日期 if(isset($parameter[$index][1])&&$parameter[$index][1]==$year) $day1 += $parameter[$index][2];//判断该节气是否有特殊日期,有的话需要对其+-1天 $day2 = floor($years*0.2422+$parameter[$index+1][0])-$_leap_value;//获取这个月的第二个节气日期 if(isset($parameter[$index+1][1])&&$parameter[$index+1][1]==$year) $day2 += $parameter[$index+1][2];//判断该节气是否有特殊日期,有的话需要对其+-1天 $data=array(); //根据条件进行判断用day2和day1与day比较前提是day2一定大于day1的 if($day<$day1){ $data['name1']=$term_name[$index-1]; $data['flag']=1; $data['name2']=$term_name[$index]; }else if($day==$day1){ $data['name1']=$term_name[$index]; $data['flag']=2; $data['name2']=$term_name[$index]; }else if($day>$day1 && $day<$day2){ $data['name1']=$term_name[$index]; $data['flag']=1; $data['name2']=$term_name[$index+1]; }else if($day==$day2){ $data['name1']=$term_name[$index+1]; $data['flag']=2; $data['name2']=$term_name[$index+1]; }else if($day>$day2){ $data['name1']=$term_name[$index+1]; $data['flag']=1; $data['name2']=$term_name[$index+2]; } return $data;
}
//若name2=name1,那么今天就是一个节气,当name2<>name1 那么name2表示下一个节气,name1表示上一个节气
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。