24节气的精确计算非常复杂,因为地球的太阳运行轨道非正圆,是个椭圆轨道且每年存在微小的偏移。无法用一个固定的算法来进行精确计算,传统高精度的计算需要通过天文方法来测算定位。
详见算法:https://blog.csdn.net/orbit/article/details/7910220
本方法通过穷举法,完成了5000年的节气计算,节气交接时间精确到秒,并生成静态文件,可通过查表方式快速读取,缺点是静态映射表文件比较大。
为解决子问题,采用使用了 SplFileObject 高性能文件行索引方式,进行文件级的快速索引定位,实现稳定的 = 5.1.0,及以上版本。建议使用php7.0及其以上,因为使用了一些7.0的特性进行封装。
类方法直接通过静态函数方式,无需new即可使用。
使用方式:
print_r(SolarTermsService::getJQ(2020));
请放心下载。
1