阳历转阴历

作者:zarte    发布时间: 2018-04-23

农历

## 农历 农历的基础是「回归年」和「朔望月」。「回归年」是太阳接连两次通过春分点所需的时间,即365.2422日(365日5小时48分46秒)。「朔望月」是月球接连两次朔(新月)或两次望(满月)相隔的时间,即29.5306日(29日12小时44分3秒)。 以月相的变化(即新月、上弦、满月、下弦)来计算日子是比较方便的方法。农历以朔为每个月的开端,这时月球和太阳的黄经相等,日食发生时必定是朔。月食发生时必定是望,这时月球和太阳的黄经相差180度。 由于12个「朔望月」只有354.3672日,跟「回归年」的365.2422日相差超过10日,把相差累积起来便成为闰月。早在公元前五、六百年的春秋时代,中国历法便采用十九年七个闰月的安排。 ## 农历国家标准 长期以来,公开发行的农历日历产品之间存在日期编排不一致、节气时间不一致、甚至重要传统节日不一致等问题。例如,2013年的端午和冬至都分别有不同的日期版本,对此公众反应强烈。 在国家标准委和中国科学院的大力支持下,农历的编算和颁行纳入了2014年国家标准制修订计划,由中国科学院归口管理,并由国内唯一的历书编算机构中国科学院紫金山天文台承担起草工作。 **总的来说有计算方法但是用来修正的观测数据规定由紫金山天文台负责** ## 进入主题,类的使用 目前绝大部分阳历农历转换是通过查表的办法。类的内容都差不多就不介绍了,本文简单介绍一个类的使用,下载连接在文末。 本类的农历数据采用的是香港天文台的数据因为紫金山的数据没找到。 根据阳历获取农历 result = $calendar->solar(date('Y'),date('n'), date('j')); 根据农历获取阳历 $result = $calendar->solar(2017, 5, 5); ## 重点 如果发现数据有错可以根据下面的提示修改。 闰月: $lunars: 0101 1010 1100 0000 (类中是16进制表示,修改后转成16进制替换) 第一位开始1月1代表大月300代表小月29,最后4位代表润月是几 节气: $solarTerms: 9778397bd097c36b0b6fc9274c91aa (代码中是16进制的,先转十进制修改后再转回16进制)16转十 621419 520420 521521 722723 723823 722721 节气从小寒1开始到二十四,每组按1 2 1 2(代表数字个数)拆分为对应日期 ## 类下载 [阳历农历转换类](https://github.com/zarte/everything/blob/master/chinese_calendar/Calendar.php)

上一篇:  Centos安装L2TP/IPSec

下一篇:  php获取域名非访问地址域名问题

加载更多