一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历算法详解 农历算式的文章,本文对文章农历算法详解 农历算式好好的分析和解答,希望你能喜欢,只有你喜欢的内容存在,只有你来光临,我们才能继续前行。
计算示例: https://blog.csdn.net/weixin_/article/details/
农历是一种阴阳合历,故而计算农历既需计算阴历使用的合朔,也要计算阳历使用的节气。农历最早使用平气和平朔,但平朔常有一日误差,以日食校验多不合。所以经历法发展改用定朔法。平气也有误差,但难以简单观察到,并且定气法容易打破农历“无中气置闰”的原则,所以在清代以前一直未得采用。直至近代历法发展,基于对精度及合天的要求,不得不重新改定规则。具体见第三点。
所以计算农历需要先找出气朔,计算气朔则需计算太阳和月亮的黄经,现代天文学使用行星历表计算天体位置。python有第三方库提供相关功能,本文提供的算法以PyEphem库为例,利用太阳黄经计算节气,由SolarTerms函数处理,合朔则直接使用库中提供的next_newmoon函数进行计算。
农历固定了一年十二个月,对应12个中气。如果出现13个月,必然有1个月没有中气,称为闰月,因此固定月序的中气也是固定的。对应关系为:
确认这种对应关系,即可分别使用参数i和j来记录合朔次数和中气序号,当某月为无中气月时,次月起对应的中气序仍从上月。
虽然当前农历以雨水作为正月中气,但历法的一些规则和计算实际是从冬至开始,一年的第一个月是十一月。建正只用于确定年干支的起始月。因为历法推算依赖于对天象的观测,特别是确定一年的长度需要测量同一节气相隔的日数,只段李并有冬至或夏至可通过比较前后日的影长方便确定,历法推算从这里开始。但为与物候结合方便农业生产与工作需要,又将正月确定为雨水中气,作为日常生活中年的开始。
程序中的findDZS函数即处理查找岁首的问题。
两个冬至的间隔为回归年长度约365.2422日,朔望月长度约29.53059日,故可能合朔12或13次。平气法时,一气的长度必然大于一朔的长度,所以只会存在一个无中气月。采用定气法后,气长不固定,因此存在一年有多个无中气月或一月有多个中气的情况,所以重新规定(序号越大优先级越高):(见附注)
原1:判断每月是否有中气,没有则置闰。
增2:仅对从冬至月开始的第一个无中气月置闰。
增3:若两个冬至月间合朔仅12次,则不置闰。
是否置闰的根本原则是,保证一年的农历月序数等于12(中气数),多则置闰,从上月序,不足则不闰。具体分析见下表示例。
判断有无中气,即对应j月的中气i在次月或i在上月且i+1气在j+1月。可以比较i中气及i+1中气与j及前后月朔的历日来确定。但可以发现一个性质,若中气出现在上月,则该月起的合朔次数必等于气数,不宜设闰,故而只需判断一项条件,即中气i进入到次月j+1时方可能有闰。
(证明中气在上月时起合朔次数等于气数:令气长为u,朔长为v,有32>u≥v>29,u-v<2.8。设i+1中气距离次年冬至共有m气,i+1月朔距离次年冬至握迹朔共有m月或m+1月,由于冬至月必然有中气,则i+1气必然在雨水或其后,故0≤m≤10。易知vm <= um < vm + v。)
月干支是根据节气判断,一年必然有12个节气,所以它的干支序是每5年循环一次。直接按干支计算,方法是先找任意一年大雪节气的干支,该年对60求余,以本年大雪干支去之,可得0年(公元前1年)扰纯的干支丙子,序12,故任意一年的岁首干支为该年加12,所在节气月的干支,则加上节气序再对60求余。也可考虑节气序与地支序是对应的,则可用上述方法计算天干再拼接为干支。
方法一:根据太阳历判断(程序所用方法):
节气日期与在太阳历中相对固定。由于每年节气数与公历月数相同,则每月的节气也是确定的,只需求该节气在月内的日期,每月内该日及以后的日期都为该节气干支,该日前的日期的月干支则为该节气前一干支。
但是,太阳历的岁长与回归年并非完全相等,现行格里历与回归年误差很小,但儒略历未考虑岁差因素,导致节气与月序的对应关系出现变化,需要处理。
方法二:根据太阴历判断:
节气序与地支对应,但不与月建对应,因为可能存在无节气月,所以判断节气月不能直接根据阴历月序处理。
由于大雪不固定在冬至朔以后,可以从立冬开始查找。使用平气法,大致找到公历日期应在的节气,再用定气法比较实际所在节气,得到节气序,最后加上该年年首节气干支即可。
年的干支序按月从正月起算(或有按节气从立春起算)。正月是冬至起的第三个月,所以实际是比较从公历转换得到的农历月是否在寅月后,否即属于上一年。
计算年干支方法与节气干支类似,得0年(公元前1年)的干支庚申,序56,则任意一年干支可知。(或干支分开计算,庚申分别为6和8,以公历年份分别对干(10)支(12)数求余即可)。
2033年虽然有无中气月但仅合朔12次,为了保证一年有12月,故不闰。
2034有2个无中气月,但由于合朔不会超过13次,至少有一个不闰,采取先出现无中气月先闰的原则。注意这个“先”从冬至月开始而非正月。
注:《清史稿·时宪志四》:“求闰月,以前后两年有冬至之月为准。中积十三月者,以无中气之月,从前月置闰。一岁中两无中气者,置在前无中气之月为闰。”
天干地支是早在公元前二千六百九十七年,於中华始祖黄帝建国时,命大挠氏探察天地之气机,探究五行(金木水火土),始作甲、乙、丙、丁、戊、己、庚、辛、壬、癸等十天干,及子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥等十二地支,相互配合成六十甲子用为纪历之符号。
我国历法以月球绕地球一周的时间(29.5306天)为一月,以地球绕太阳一周的时间( 365.2419 天)为一年,为使一年的平均天数与回归年的天数相符,设置闰月。据记载,西元前六世纪中国开始采用十九年七闰月法协调阴历和阳历。
天干地支,是过去人建历法时,为了方便做60进位而设出的符号。对古代的中国人而言,天干地支的存在,就像袜燃纯阿拉伯数字般的单纯,而且后来更开始把这些符号运用在地图、方位及时间(时间轴与空间轴)上,所以这些数字被赋於的意思就越来越多了。
古人(一说黄帝)观测朔望月,发现两个朔望月约是59天的概念。12个朔望月大体上是354天多(与一个回归年的长度相近似),古人因此就得到了一年有12个月的概念。在搭配日记法(十天干),产生阴阳合历,发展出现在的天干地支;较为成熟时应该是在夏商周这几个朝代。
天干地支简称干支,是夏历中用来编排年号和日期用的。
历法用天干、地支编排年号和日期,天干共十个字,因此又称为「十干」,其排列顺序为:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;地支共十二个字,排列顺序为:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。其中甲、丙、戊、庚、壬为阳干,乙、丁、己、辛、癸为阴干。子、寅、辰、午、申、戌为阳支,告咐丑、卯、巳、未、酉、亥为阴支。
以一个干和一个地支相配,排列起来,天干在前,地支在后,天干由甲起,地支由子起,阳干对阳支,阴干对阴支(阳干不配阴支,阴干不配阳支)得到六十年一周期的甲子回圈。称为“六十甲子”或”花甲子”。我国人民过去就是以六十甲子循环来纪年、纪月、纪日、纪时的。
天干地支这共二十二个的符号错综有序,充满圆融性与规律性。它显示了大自然运行的规律,即时(时间)空(方位)互动,和「阴段消」与「阳」的作用结果。中国历法包含了阴阳五行的思想和自然回圈运化的规律。
年:每个干支为一年,六十个干后,又从头算起,周而复始,循环不息。由甲子开始,满六十年称做一甲子或一花甲子。称为干支纪年法。
月:正月是由寅开始,每个月的地支固定不变,然后依次与天干组合;由第一年的正月丙寅月、二月是丁卯月、三月是戊辰。从甲子月到癸亥月,共六十甲子,刚好五年。
日:由甲子日开始,按顺序先后排列,六十日刚好是一个干支的周期。
时:由甲子时开始,但记时的地支固定不变,每天十二个时辰。
补充典故:
相传黄帝时代,因有蚩尤神扰乱,黄帝忧民之若,遂与蚩尤大战於涿鹿之野,流血百里不能治之,黄帝於是斋戒沐浴、筑坛祀天、方丘礼地。天乃降十干(即甲乙丙丁戊己庚辛壬癸)。十二支(即子丑寅卯辰巳午未申酉戌亥)。帝乃将十干圆布像天形,十二支方布像地形,始以干为天,支为地,然后乃能治之。后有大挠氏将十天干、十二地支分配成六十甲子,并以黄来开国日定为甲子年、甲子月、甲子日,甲子时。此为天干地支之由来。
农历闰月的计算方法有以下几点:
1. 找出该年的“闰年”,也庆前就是农历中有13个月的年份。闰年的判断方式为:如果该年正月初一到二月初一之间的新月数量为13个,则该年为闰年,并在后面有一个闰月。
2. 找出闰月的月份。闰月在农历中的名称与普通月份相侍差猛同,只是前面加上“闰”字。例如,闰四月指的是在四月份后面的一个月。
3. 假如该老桥年有闰月,则该年的月份顺序为:正月、闰月、二月、三月、四月……十一月、十二月。如果该年没有闰月,那么该年的月份顺序就是:正月、二月、三月、四月……十一月、十二月。
需要注意的是,以上计算方法只适用于传统的农历算法,不适用与公历和其他历法。
以上内容是小编精心整理的关于农历算法详解 农历算式的精彩内容,好的文章需要你的分享,喜欢农历算法详解 农历算式这篇精彩文章的,请您经常光顾吧!
上一篇:南怀仁 历法 南怀仁等
下一篇:更多十二星座
本文标题:农历算法详解 农历算式
本文链接:http://m.xingzuo789.com/article/67904.html
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历算法详解 农历算式的文章,...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于南怀仁 历法 南怀仁等的文章,本...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于建军节是农历几月几日 建军是...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于呀天农历 low天农历多少的文章...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于过年过农历还是阳历 过年过农...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历兑换阳历 农历公历换算小...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历挂历图 农历挂件的文章,本...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历甘是啥 农历甘是几号的文...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历生肖鼠 属鼠农历生日命运...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于86年10月属什么命运呢 86年10...