农历的算法是怎么算的?

如题所述

农历一年为12或13个月,每个月天数依照月亮围绕地球运行周期而定,为29或30天,闰年为13个月,中国农历年平年为353或354天,闰年为384或385天,平均每年约为365.2422天(即地球环绕太阳一周的时间)。

农历基本上以19年为一周期,对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。

闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定。自冬至开始,逢单数为节气,逢双数为中气,如轮到一个月只有节气没有中气,即为上一个月的闰月。 农历的闰月天数与正常月份天数一样,为29或30天。

扩展资料

农历是我国传统历法,又有阴历、华历、夏历、汉历、中历等名称。农历并不是纯阴历,而是一种阴阳合历,取月相的变化周期即朔望月为月的长度,加入干支历“二十四节气”成分,参考太阳回归年为年的长度,通过设置闰月以使平均历年与回归年相适应。农历是以阴历(夏历)为基础,融合阳历成分而成的一种历法。所以我国的农历从严格意义上说不应该叫阴历,而是阴阳合历。

农历属于一种阴阳合历:其年份分为平年和闰年。平年为十二个月;闰年为十三个月。月份分为大月和小月,大月三十天,小月二十九天,其平均历月等于一个朔望月。一年中哪个月大,哪个月小,由计算决定。

农历是兼顾太阳、月亮与地球关系的一种历法。阴历不考虑地球绕太阳的运行,因而使得四季的变化在阴历上就没有固定的时间,不能反映季节。与阳历年固定在365天或366天不同的是,阴历年相比阳历年在天数上有时会相差一个月;为了协调阴历年与阳历年之间的天数,于是便通过“置闰法”进行调整使阴历月相总天数与阳历回归年总天数相适应。

参考资料:百度百科-农历

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-16
首先我复制粘贴的,还有就是算法复杂,如果你的心算能力强就会更快些!

阳历日期推算阴历日期的方法:
阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:

其一是查《新编万年历》,如查1984年6月8日是阴历几日?翻开万年历6月10日是阴历十一,则逆推6月8日是阴历初九。

其二可以利用公式推算阴历日期:
设:公元年数-1977(或1901)=4Q+R
则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n
(注:式中Q、R、n均为自然数,R<4)
例:1994年5月7日的阴历日期为:
1994-1977=17=4×4+1
故:Q=4,R=1
则:5月7日的阴历日期为:
14×4+10.6(1+1)+(31+28+31+31+7)-29.5n
=204.2- 29.5n
然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日。

一、 推算年干支口诀

掌上推算年干支,支子花甲起根源。
阳支都是旬开始,天干为甲尾四年。
隔位逆推十年正,顺推年尾五零三。
逐支加减六十数,掌上推算千万年。

推算方法:“掌上推算年干支,支子花甲起根源。”此法是将地支排列在掌中,手掌上推算年干支的方法。 首先,在掌上将地支定位(图一),然后以地支子位为花甲子的开始,可定为1864,1924,也可定为1984年???,其年都是甲子年。“阳支都是旬开始,天干为甲尾四年。”地支中的子,寅,辰,午,申,戌都是阳支,而且也是每旬的开始,天干都为甲,即甲子,甲戌,甲申,甲午,甲辰,甲寅,这些年的公历尾数均为四。“隔位逆推十年正,顺推年尾五零三。”天干十数,地支十二数,天干与地支组合天干每循环一次,地支总与下二支(旬空)。其中余下的第一支便是下旬的开始。我们从地支子位开始,隔一位逆推,即从子位逆推隔亥到戌,恰是甲戌旬的开始,再逆推隔一位酉至申为甲申旬开始,------年尾数都为四,年间隔都是十年。在确定旬开始以后,以该年尾数四为起点,从下支开始挨位顺推,其公历年尾数分别是5,6,8,9,0,1,2,3,而后又是下旬的开始。“逐支加减六十数,掌上推算千万年”掌握此法推算,如果将甲子年定为1984年,按口诀可知1994年为甲戌,2004年为甲申,2014年为甲午等。确定每旬开始的公历年数后,可根据需要顺推任何一年的干支,虽意性很大,可推千年万年的干支。

二、推算月、时干支口诀

天干五合前为主,月时干序一至五。
年干隔数配寅月,日干配时本数身。

古往今来,年上起月,日上起时,是按天干五合的方法,分成五种情况,即甲、己之年(日)定月(时)的方法相同------。我们也采用这种方法,并一前一天干为主,即甲、己以甲为主,乙、庚以乙为主,------,配上序数甲为1,乙为2,丙为3,丁为4,戊为5(图二),成为推算月、时的固定序数。“年干隔位配寅月”,推算某年的月干,先看该年干与何干相合,然后按“天干五合前为主”的方法,查出该干的序数,并设此干为零,按序数隔干确定寅月的天干。如98年是戊寅,戊癸干合,戊年与癸年的天干相同,属于同一种定寅月天干法。五的序数尾5 ,从5 开始,隔己、庚、辛、壬、癸五天干到甲,就可以算出98年寅月的天干是甲,其他月的天干就好推算了。“日干配时本身数” ,此句推算方法与年干定寅月天干发基本相同,只是在确定日干合干以后,从合之干的前干本身算起,按序数查,到何干,便是该日子时的天干。如己日,己与甲同一类型,以甲干为主,甲的序数为“1”以本身配子时,该日子时的天干为甲,即甲子时。同样,癸日子时吧的天干,因戊癸合干,以五为主,序数为5,从5开始数到壬,癸日子时为壬子时。

二、 农历大小月卦口诀

一年上下两卦编,一七两月初爻安。
阴大阳小编上卦,遇有闰月年十三。
闰爻相邻爻间伏,确定年月按节算。

推算方法:此诀是为了掌握某年农历大小月的排列顺序和有否闰月而编的。“一年上下两卦编,一、七两月初爻安” ,在 正常情况下,农历每年为十二个月。我们可以将一至六月编为前卦,七至十二月编为后卦,几一年编为两卦,并以一月为前卦的处爻,七月为后卦的初爻。“阴大阳小编上卦,遇有闰月年十三”,我们将大月规定用用阴爻表示,小月用阳爻表示,按大小顺序用阴阳爻将一年编为两卦。遇到有闰月的年份就多出一个月,一年为十三个月。“闰年相邻爻间伏,确定年月按节算”。在出现有闰月的年份时,按闰月大小用阴阳爻表现出来,并标在 闰月的前后两月的爻位中间的左侧,如同伏卦一样,一看便知到闰几月,是大月还是小月。同时,提醒您农历年、的确定,不是按万年历编出的月份确定的,而是按节气确定的。如1998年,按上述方法可编成《井》和《坎》两卦,而今年闰5月为小月,上半年月卦符号为“: 。 : 。 。 : ”,下半年的月卦符号为“ = 丨 = = 丨 = ”,上半年卦第5、6爻间伏一阳爻,可知今年润五月为29天。

四、推算日干支口诀

推算日干支,可以按公历和农历两种方法推算。

⑴ 农历日干支推算口诀:
大小月卦记心间,正一干支起根源。
大后干同地支冲,小后干支退一天。
初一十三二十五,支同隔干一位算。
推算方法:“大小月卦记心间,正一干支起根源。”农历的大月为30天小月为29天,固定不变。要推农历曰干支,先要按《农历大小月卦口诀》将推算之年编上两卦,以便在推算日千支时运。除此之外,还要记住农历正月初一日的干支,因为它是推算一年逐日的基础。“大后干同地支冲,小后干支退一天。”农历天干与地支组合,天干循环2.5次。根据这一规律,知道某月初一日干支,如果这个月是小月则应在干同支冲的情况下,干支各减一位,则是小月后下月初一日干支。如本月初一干支为己卯,这个月是大月,下月初一干支为己酉。如果这个月是小月,则下月初一干支应在己酉退一位后确定,即为戊申日。“初一十三二十五,支同干隔一位算。”此两句是在确定某月初一干支后,将这个月分成三个阶段,即初一至十二,十三至二十四二十五以后。初一、十三、二十五日在干支上也是有规律的。知道初一干支,只要将该日天干隔一位顺推,而地支不变。同理,知道十三日干支,支同干隔一位,也知道二十五日的干支。如初一日干支为甲子,则十三日干支为丙子,二十五日干支为戊子。掌握这个方法,就可以根据所推之日属于哪一段,便可以很快知道这天的干支了。

⑵公历日干支推算口诀:
元旦干支为根源,大小二月记心间。
小月干同地支冲,大月上句加一天。
申子辰年年为闰,干同支冲退一天。
余年二月二十八,干同支冲退一天。
月首十三二十五,支同隔干一位算。
推算方法:“元旦干支为根源,大小二月记心间。”推算公历日干支,首先要记住元旦曰的干支。同时,还要知道大小月及二月的天数。公历大月为31天,小月为30天,其大小月是固定不变的,唯独二月有29天和28天之分。因此,要特别注意哪年二月为29天,那年二月为28天。“小月干同地支冲,大月上句加一天。”公历小月为30天,按农历大月推算口诀,我们知道本月初一日干支,与下月初一干支则是天干相同地支相冲。公历大月为31天,在小月干地相冲的基础上,干支各加一位数,即是大月后下月一日的干支。“申子辰年年为闰,干同支冲退一天。”经过研究,发现凡地支为申、子、辰的年为公历闰年,二月为29天。在推算3月1日干支时,可按农历小月后的日干支推算方法,即在干同地干冲的基础上,干支各减一位,则为3月丨日干支。“余年二月二十八,干同干冲退二天。”除地干为申子辰年二月29天,其它年二月均为28天。在知道2月1日干支后,按干同支冲规律,干支各减二位便是3月1日的干支。“月首十三二十五,支同干隔一位算。”月首,代表每月第1日。其推法与农历日干干诀后两句相同。

五.实例:推算1998年农历6月初10日午时的干支。
⒈先按《农历大小月卦口诀》,将98年农历大小月,排上两卦,并标出闰月。同时,记住正月初一日和元旦日干支。
⒉推算1998年的干支。我们按《推算年干支口诀》在手掌上将地支子位定为甲子,为1984年,并将大拇指按在地支子位上。按“隔位逆推十年正”,大拇指从甲戌94年开始顺推,即94年为甲戌,95年为乙亥,96为丙子,97年为丁丑,98年干支则为戊寅。
⒊推算农历6月份干支。确定1998年戊寅干支以后,按《定月时干支诀》,戊干与癸干合以戊为主,戊的序数为5,将大拇指固定在戊位上。“年干隔位配寅月”,从戊位开始,将大拇指顺数,隔过天干,已,庚,辛,壬、癸五干到甲,便是98年正月的天干,即正月干支为甲寅,再从寅支开始,按甲,己,丙,丁,戊6月干支为己未。
⒋推算6月初10日(公历8月1日)干支。
⑴推算农历日干支。如前所述,98年大小月卦为《井》和《坎》。因为闰5月为29天,为阳爻,伏在《井》卦第5、6爻问,卦形为 =丨= 丨丨= 。
因为要推算的是农历98年正月初一日干支为己亥,先用大拇指在手掌亥支上定位,然后按《农历日干支推算诀》中的“大后干同地支冲,小后干支退一天”的规定,逐月推算初1日的干支。正月为大,干同支冲,大拇指跳到巳位上,2月初1日干支为已巳;干同支冲各减1,大拇指跳到亥位后,再减1位,3月初1日干支为甲戌;3月为小,干同支冲各减1大拇指跳到辰支后退1位,4月初1日为癸卯;4月为大,干同支冲,大姆指跳到酉干,5月初1日为癸酉;5月为小,干同支冲各减1,大拇指跳到卯支再退1位,闰5月 初1日为壬寅。闰5月为小,干同支冲各减1,大拇指跳到申支后再退一位,六月初一干支为辛未。知道6月初1日的干支后,从此位顺推初10曰的干支为庚辰。
⑵、推算公历8月1曰干支。
98年干支为戊寅,年支不属于申子辰,故98年2月为28天。按《曰公历干支推算口诀》中“小月干同地支冲,大月上句加一天------,余年二月二十八,干同支冲退两天”的规律,逐月推算。98年干支戊申,大拇指定在申位上。1月为大,干同支冲加一天,大拇指由申位到跳到寅,加1支到卯,2月1日为己卯,2月28天,干同干冲退二天,大拇指跳到酉位退二支,3月1日为丁未;3为大,干同支冲加1天大拇指跳到丑进一位4月1日干支为戊寅;4月为小,干同干冲,大拇指跳到申位,5月1日干支为戊申;5月为大,干同支冲加1天,大拇指跳到酉位,7月1日干支为己酉;7月为大,干同支冲加1天,大拇指跳到卯进1位到辰,8月1日干支为庚辰。
⒌推算农历6月初10(公历8月1日),该日干支为庚辰。我们按《定日时干支诀》知道,该日干庚与己相合,按“天干五合前为主”,以天干己来推算,己的序数为2,将大拇指定在天干己的位置上。“日干定时本身数”,大拇指从第二位到丙,可知庚辰日子时为丙子。将大拇指从丙子顺推到午年时,天干为壬,午时干支为壬午。
经过在掌上推算年、月、日、时干支,可知98年农历6月初10日(公历8月1日)午时干支,分别为戊寅年己未月庚辰日壬午时。

六、需要注意的几个问题。
⒈要在理解《冯氏掌上巧推年月日时干支法》的基础上,将巧记口诀和在掌上定位推算结合起来,并经常对照万年历进行推算,才可能达到熟练生巧,运用自如。
⒉再运用此法时,应先制定一种表格,并随身携带,供推算年干支时使用。
此表格如下:
年序号 本年大小月卦(闰) 立春月日时 正月初一日干支 元旦日干 支
1988 :丨:丨丨::丨::丨: 正月初八庚子日辰时 己亥 戊申
1999 丨丨:丨丨:丨:::丨: 腊月十九丁亥日未时 甲子 癸丑
在推算逐日干支时,一定要注意大小月,分清干同支冲和干同干支冲加减的区别。

掌上巧推年月日时干支法(附录)

一、 逐年推算元旦干支口诀
欲推来年元旦日,先知今年日干支。
申子辰支年为闰,干加六位支冲支。
余年天干加五位,干冲退一便可知。
推算方法:“欲推来年元旦日,先知今年日干支。”推算来年元旦日的干支,必须先知道今年元旦日的干支,并用大拇指在掌上定位。“申子辰干年为闰,干加六位支冲支。”凡年支临申子辰的为闰年,2月29天。推算下一年元旦日的干支,只要大拇指从今年元旦日支位,跳到相冲的地干支位上,而后天干顺加六位,便是来年元旦的干支。“余年天干加五位,干冲退一便可知。”除申子辰年外,其它年干2月均为28天。大拇指在掌上定好今年元旦日支位置,推算来年元旦干支时,将大拇指跳到相冲之支退一位,天干加上五位,即是来年元旦的干支。

二、逐年推算正月初一日干支口诀
欲推来年正一月,先知今年日干支。
常年退回小月数,闰月小数五六七。
小六干同天隔三,迂五前句各加一。
逢七支同天隔三,各退一位定无异。
推算方法:“欲推来年正一月,先知今年日干支。”推算来年正月初一日的干支,必须先知道今年正月初一的干支。“常年退回小月数,闰月小数五六七。”常年,指没有闰月的年份。推算农历正月初一干支,要按《农历大小月卦口诀》,逐年编上两卦,以便确定某年的小月数。如果今年没闰月,求来年正月初一日干支。经过研究,凡有闰月之年小月数分别为五、六、七三种。“小六干同天隔三,迂五前句各加一。”闰月之年,如果小月数为六,来年正月初一日干支,于前一年初一日干支则是地支相同,而天干则顺隔三位。小月数为五的,按干同天顺隔三后干支各进一位,便是来年正月初一日干支。“逢七支同天隔三,各退一位定无异。”闰月之年小月数为七的,在确定当年正月初一日干支后,推算下一年正月初一日干支,只要按支同天顺隔三位后,干支各减一位,便时来年正月初一日干支。

三、 用卦象推算公历各月第一日干支法
用卦象推算公历各月第一日的干支,主要是按公历大小月固定不便的实际,编上一个适用任何一年的卦象。然后按大小干支循环规律,进行推算各月第一日的干支。公历年大小月固定卦象,上半年是《未济》卦,下半年为《蹇》卦,其卦象如图三所示。在推算过程中,要特别注意二月,因为有28天和29天之分,所以在《未济》卦象的等二爻,标上闰年合非闰年字样,以便在推算时引起注意。在推算时,要将《公历曰干支推算口诀》做为依据,确定下月第一日干支,然后按“月首十三二十五,支同隔干一位算”,推算出所求之日干支。图三。
6月 丨 一曰干同地支冲+1 12月 = 一日干同支冲
5月 = 一日干同地支冲 11月 丨 一日干同支冲+1
4月 丨 一日干同地支冲+1 10月 = 一日干同支冲
3月 = 闰一日干同地支冲+1 09月 丨 一日干同支冲+1
2月 丨 闰年2月29天,非一日干同支冲—2 08月 = 一日干同支冲+1
非闰年2月28天,一日干同支冲+1
1月 = 元旦日干支 07月 = 一日干同支冲

四、 用卦象推算农历各月初一日干支法
农历大小月,其天数固定不变,即大月30天,小月29天。但是,由于大小月的排列不规则,因此要按《农历大小月卦口诀》先编上本年的上下半年的月卦。然后依据两个卦象,参考《农历日干支推算口诀》,在知道正月初一的日干支后,按“大后干同地支冲,小后干支退一天‘的规律,运用卦象来推算农历各月初一日的干支。经研究发现,农历相邻两月大小月的排列,共有四种类型,其推算逐月初一干支法如下:
⑴ 两小月相邻同支冲 ⑵ 两大
— 下月干同支冲—1 = 下月干
— 本月初一日干 = 本月初一日干支
⑶大小月相邻 ⑷ 大小月相邻
— 下月干同支冲 = 下月干同支冲—1
= 本月初一日干支 — 本月初一日
△ 实例:推算2001年各月初一干支
⒈按《农历大小月卦口诀》,先将2001年编上月卦。上半年为“艮”卦,下半年为“既济”卦。
⒉2001年正月初一日干支为丁亥。
⒊推算时,要将1、2月,3、4月等相邻两月,与四种排列类型对照,然后按相同类型进行推算。
⒋根据卦象,逐月进行推算。
6月“ — ”干同支冲己酉 12月“ = ” 干同支冲—1辛巳
5月“ — ”干同支冲—1己卯 11月“ — ” 干同支冲壬子
闰4月“ — ”干同支冲丙戌 10月“ = ” 干同支—1壬午
4月“ — ” 干同支冲—1丙辰 9月“ — ” 干同支冲葵丑
3月“ — ” 干同支冲丁亥 8月“ = ” 干同支冲—1癸末
2月“ — ” 干同支冲丁巳 7月“ — ” 干同支冲—1甲寅
1月“ — ” 正月初一丁亥
经过逐卦推算农历12月初一为辛巳。本回答被网友采纳
第2个回答  2020-12-23

为什么有农历国历,农历与国历是怎么计算的?天干地支从何而来?

第3个回答  推荐于2017-10-03
一、农历规则计算:
节气和朔望的时间计算以东经120度,中国标准时间为准。
(农历法则据中国科学院紫金山天文台)
二、首先需要了解以下常用术语:
黄经:是在黄道坐标系统中用来确定天体在天球上位置的坐标值、共分成360度、在这个系统天球被黄道平面分割为南北两个半球,太阳移到黄经0度为春分、移到黄经90度为夏至、移到180度为秋分、移到270度时为冬至。

朔日:月球移到地球和太阳中间时的那一天叫朔日。
平朔:用朔望月的平均长度计算、没考虑日月运行的不均等性;缺点:“含有真正的“朔”的当天有时可能会出现在前一月的最后一日(“晦日”、廿九日或卅日),有时会出现在初二”。
定朔:计算考虑了日月运行的不均等性,将含有真正“朔”的当天作为每月的开始。
平气:计算不考虑太阳在黄道上运动快慢不匀,将一周年时间(回归年)24等分划分出二十四节气,两个节气之间的平均天数为15.22天。
定气:计算考虑太阳在黄道上运动快慢不匀,将定气两个节气之间的天数不一样、短的只有14天、长的达16天。
冬至日:冬至交接时间所在的那一天就叫冬至日。冬至日必须在子月:冬至日当天或冬至日前的那个朔日定为子月初一“起点”(注意:起点和算命不同)。
建正:年首月份,农历的建正就是“夏正”:夏历正月建寅[子月为十一月];
殷正:殷历正月建丑[子月为十二月]、鲁历同殷历;
周正:周历(周朝历)正月建子[子月为正月];
秦正:秦历《颛顼历》正月建寅,十月建亥为一年的第一个月。
节气:一年分十二节,十二气,共二十四个节气,清朝《时宪历》(公元1645年)以前用平气标注,清朝《时宪历》(公元1645年)以后用定气标注。
三、历法:
注意标注和计算的不同,农历定气算法在隋唐时代就已经产生,但受到当时保守势力的阻拦并没有完成从平气标注到定气标注的转变,比如僧一行修订《大衍历》时倡议定气注历,但朝廷并未采纳他的学说,最终定气算法在明末之前只用于计算日躔、五星行度和日月食预报。到了明末的《崇祯历书》经过激辩,最终确立的定气注历的原则。
历法:可分为阳历、阴历、阴阳历三种:
阳历(太阳历):以太阳周年视运动周期(即回归年,约等于365.2422日)为一年,一年划分成12个月,它与月亮运动毫无关系。根据阳历日期,可知寒来暑往的四季变化、合理指导农业等事。公历(学名格里高利历)就是阳历的一种。
阴历(太阴历):以月亮的圆缺周期(即朔望月,等于29.530588日)为一个月,积12个月为一年。它完全不考虑太阳的周年视运动规律,因而阴历的日期不能显示四季冷暖。这种历法实用价值太小,现除伊斯兰教外,已弃置不用了。
阴阳历:我国的农历属于此类,它取月相的变化周期即朔望月为月的长度,参考太阳回归年为年的长度,通过设置闰月以使平均历年与回归年相适应。根据农历日期,既可知道潮汐涨落,又可大概掌握四季更替。
历书:记载历法等相关信息的出版物,如黄历、万年历书。而电子历书是科技发展的产物,是新的载体。
四、农历规则
在古代,日的定义:以地球自转一周为一日。其中以太阳离地平线最远的一个时辰为子时,相当于北京时间23:00~1:00。但是农历中一天始于子正(0:00),而非子初(23:00)。

月策与置末规则:朔日为每月起点(初一日);朔日(月初一日)到下个朔日(下月初一日)有多少天、这月就有多少天。有30天为大月、有29天为小月;唐朝武德二年(公元619年)以前用的是平朔,武德二年(公元619年)以后用的是定朔。
年策与置闰规则:以冬至日必须在子月(寅正十一月),上个冬至月(寅正十一月)到下个冬至月如有12个月就不置闰,如有13个月就要置闰,以上个冬至月之后第一个无中气的月份为闰月,在几月后面就称闰几月。 例如:壬子年(2032)冬至月到癸丑年(2033)冬至月之间有12个月,就不置闰。癸丑年(2033)冬至月到甲寅年(2034)冬至月有13个月就必须置闰,在癸丑年(2033)冬至月(十一月)后的第一个无中气之月是该月的下一个月,就定为闰月。它正好十一月后,所以就叫闰十一月。
相似回答