农历算法步骤如下:
计算采用北京时间为标准,朔所在的农历日为农历月首。我国的农历强调逐年逐月推算,通过逐月推算后才知道某年某月是大月还是小月;通过逐年推算后,才知道某年是闰年还是平年。
农历是基本上以12个月作为一年的,但12个朔望月的时间是354.3667日,和回归年比起来要相差11天左右,这样每隔3年就要多出33天,即多出一个多月,为了要把多余的日数消除,每隔3年就要加一个月,这就是农历的闰月。
以月相定日序。即以日月合朔的日期和时刻来定每月的初一。例如,如果今天6时5分是日月合朔的时刻,则今天是初一。如果第二个日月合朔落在第30天,那么该月是小月(29天);如果落在第31天,那么该月是大月(30天)。
以中气定月序。我国的旧历把全年分二十四个节气,其中单数的叫节气,双数的叫中气。以雨水所在的月为正月;以春分所在的月为定为二月;以此类推。
农历的由来:
农历,是中国现行的近现代历法,属于阴阳合历,也就是阴历和阳历的合历,是根据月相的变化周期,每一次月相朔望变化为一个月,参考太阳回归年为一年的长度,并加入二十四节气与设置闰月以使平均历年与回归年相适应。
农历融合阴历与阳历形成为一种阴阳合历历法,因使用“夏正”,古时称为夏历。农历是1970年以后使用新的历法,其年份分为平年和闰年,平年为十二个月,闰年为十三个月,月份分为大月和小月,大月三十天,小月二十九天,其平均历月等于一个朔望月。
根据中国科学院紫金山天文台起草的国家标准《农历的编算和颁行》,朔日为农历月的第一个农历日,也就是说每个农历月的初一一定是朔日。
每个农历月反映了完整的月相变化周期,因此属于阴阳历中的阴历部分。农历中的二十四节气反映的是地球绕太阳运行轨道上的不同位置,即回归年周期,因此属于阴阳历中的阳历部分。