1、我国的农历是一种阴阳历1912年以前用。
2、我国的农历强调逐年逐月推算。通过逐月推算后才知道某年某月是大月还是小月;通过逐年推算后,才知道某年是闰年还是平年。
3、我国传统历法一直是阴阳历和二十四气并行,二十四气适用于农业生产。
4、我国传统历法采用干支循环(六十甲子)为周期的纪时制度。
历日的推算有两条原则:
1、以月相定日序。即以日月合朔的日期和时刻来定每月的初一。
例如,如果今天6时5分是日月合朔的时刻,则今天是初一。如果第二个日月合朔落在第30天,那么该月是小月(29天);如果落在第31天,那么该月是大月(30天);
2、以中气定月序。我国的旧历把全年分二十四个节气,其中单数的叫节气,双数的叫中气。以雨水所在的月为正月;以春分所在的月为定为二月;以此类推。
规定,平年有十二个月,闰年有十三个月,在没有中气的历月叫闰月,把闰月看成是前一月的重复,月序同上一月。
关于节气与阳历(公历)的关系:
节气是按太阳黄经来划分的,在地球绕太阳转的每15度为一个节气,所以节气与公历的日期是相对较固定的,每个公历平年的节气位置是固定的;而公历的闰年的节气比平年的节气的位置要前一日。如2000年(闰)其冬至12月21日,而2001年(平)的冬至是22日的。
实现:
1、公历中二十四节气很简单,
2、农历要找到一个基准日(日月合朔的日期),才可按逐年逐月推算出日序与月序;闰年与闰月。
3、再根据干支循环(六十甲子)定年就容易了。
农历的年、月、日是按照公式计算而来的,不像西历时强行规定哪月是大月,哪月是小月。要计算大小月、平闰年、闰月放在什么位置,都要按照公式来。下面我们来给出计算的公式。年份的计算1由西元年份推算天干地支:
农历年份数减3,除以10的余数是天干,除以12的余数是地支。例如:(2010-3)mod10=7,所以天干是“庚”(2010-3)mod12=3,所以地支是“寅”。
2.积日的计算(用于月份的计算):
当年的1月0日换算为积日,可以用年份减去1900得到的年数被4整除,所得商数作为y(D4),余数作为y(M4),y(M4)为零的年份是公历闰年,积日是
D(1)=1461*y(D4)-1,y(M4)不为零的年份是公历平年,积日是D(1)=1461*y(D4)+365*y(M4)
月份的确定计算前一年冬至的积日F(0),并用F(0)计算冬至所在的朔月m及其朔日M(0),就可以推算冬至的农历日期,冬至所在的农历月份总是十一月。计算下一个中气F(1)和下一个朔日M(1),如果F(1) 0小寒腊月6清明三月12小暑六月18寒露九月 1.大寒腊月7谷雨三月13大暑六月19霜降九月 2.立春正月8立夏四月14立秋七月20立冬十月 3.雨水正月9小满四月15处暑七月21小雪十月 4.惊蛰二月10芒种五月16白露八月22大雪冬月 5.春分二月11夏至五月17秋分八月23冬至冬月 把当天和1900年1月0日(星期日)的差称为积日,那么第y年(1900年算第0年)第x个节气的积日是F=365.242*y+6.2+15.22*x-1.9*sin(0.262*x)这个公式的误差在0.05天左右。 注:经过我的个人验证,公式F=365.242*y+6.2+15.22*x-1.9*sin(0.262*x)的参数改为F=365.242*y+6.18799+15.22567*x-1.9*sin(0.2618*x)似乎好些。