主题:【求助】农历的问题 -- 铁手
农历阴阳合历,简单说农历=太阴历+24节气,前者反映月相,后者反映季节。前者比较直观,可以用来预测潮汐等;后者主要用来指导农时。
太阳历里面最重要的其实是冬至,这个在古代就已经被人们认识到了,并且用来作为旧的一年的结束和新的一年的开始。圣诞、元旦和春节其实都和冬至有一定关系。比如圣诞节其实就是古罗马的太阳神诞生节,也就是冬至日,和耶稣没有半毛钱的关系(而且耶稣也确实不是那天诞生的)。
记得耶稣那个是从树神过来的。古罗马密特拉教和基督教竞争的时候,两家已经是一个生日了。宇宙方面也有相似之处。不过这应该是“原初经验”带来的。
顺便一提,这也是元始天尊的诞辰。
如果更进一步,各个文明的宇宙论都和天文有关系。比如星辰和四季是怎么形成各种不同的时空观的。最典型的就是原型回归。也就是四季流转。从秩序的消亡回到秩序的开始。进而出现了轮回,比如Periodos和Saṃsāra。
用来计算农历-公历的 Python & C codes 的网页。
自己也可以算吧?农历的节气是根据太阳轨道/黄道的角度来确定的;地球围着太阳转一圈360°,每15°,进一个节气。
古人就是这么算的:中国古代历法是阴历&阳历的综合。阳历不是“洋历”😄 阴历根据月球运行的轨道,天文历法上称为“白道”。阳历根据太阳运行的轨道,天文历法上称为“黄道”。把黄道分成24等分,每15°,一个节气。
最迟春秋就用阳历确定节气了,一年五季太阳历啥时候的事?
中医概念中的五运六气可能与此相关
不知道他是直接抄紫金历还是自己出的农历。不过现在农历都是天文历,只要同一时区按定朔法确定初一就不会有出入。港台这个就是读取要费点事。我以前有个图书馆账号有紫台数据库,现在试了一下进不去了。
“朔”指月、日的地心黄经相同,定朔法是以“朔”这个天象发生时刻所在的那一天为初一,所以不同时区哪怕都用农历都用定朔法,初一可能相差一天。另外有的阴历以“望”(月、日的地心黄经差180度)的那一天为十五日。
其中有一个算法,采用vsop-82/87行星计算理论,有原理和例程,可以以分钟级精度计算日月合朔和节气具体时间,在此基础上推算农历即可。我用此程序计算过1800-2099之间300年的数据,用近几年的节气数据对比了一下,确实可以到分钟级。实际使用的时候可以先算好保存成数据库,用的时候查表比较方便。
现在看来应该要重视了。
如果我理解没错的话,二十四节气实际上是农历里极其重要的一部分,没有它也就难以确定各节日的时间。我一直以为只和月亮有关。
我会尽快想法买一本这个书,看看复杂不复杂。不过不管怎样,看看算法也会很有意思
楼下有河友提到了“合朔”的问题,仔细看了一上,上面那个网站其实也提到了,尤其是在以下日期由于UTC+8时刻的微小差异可能会出现农历初一差一天的情况。
比较了一下前三个(香港天文台只提供到2100年的数据),发现第一个有些不同,香港天文台把2057年9月28日作为农历九月的初一,也就是说八月只有29天,是个小月。与上面的网站不符,又和这个比较了一下,也是把2057年9月29日作为农历九月的初一,因此大概率是香港天文台的数据有问题。
个人猜测这个可能和地球自转的不均匀有关,所以现在可能是无解的,只能随着时间的过去才能使这个值精确起来。也就是说只能等将来才能确定。因此也不能说香港天文台的数据就是错的,只是有可能不太精确。
网上还有人提到2033年闰月问题,查了一下,上面提到的几个网站应该都是正确的。
合朔的时刻如果在0点附近,微小的差距就可能造成初一对应的公历日期差一天,这个差理论上还可能造成置闰的变化,也就是把闰月放在完全不同的农历月之后,这样就会造成更大的差别。当然不是专业人士,也不能完全确定最近的几百年会不会有这样的情况发生。
我思考过,如果我啥也不懂,但每天观察影子的长度,就会发现影子里蕴含着秘密。
我会试着每天记录影子的长度,发现,影子的长度会以一定的周期不停地变换长短,这个周期就是年。
同时,影子最长的那天就是冬至,最短的那天就是夏至。
估计,古人制定历法时,也会遵循这个思路。
“作立五行,以正天时,以正人位。人与天调,然后天地之美生。 日至,睹甲子,木行御。天子出令,命左右士师内御。总别列爵,论贤不肖士吏。赋秘,赐赏于四境之内。发故粟以田数。出国衡顺山林,禁民斩木,所以发草木也。然则冰解而冻释,草木区萌。赎蛰虫卵菱。春辟勿时,苗足本。不疠雏轂,不夭麂麋,毋傅速,亡伤襁褓。时则不凋。七十二日毕。
睹丙子,火行御。天子出令,命行人内御。令掘沟澮,津归涂。发臧,任君赐赏。君子修游驰,以发地气,出皮币。命行人修春秋之礼于天下,诸侯通,天下遇者兼和。然则天无疾风,草木发奋,郁气息。民不疾而荣华繁。七十二日毕。
睹戊子,土行御。天子出令,命左右司徒内御。不诛不贞,农事为敬。大扬惠言,宽刑死缓罪人。出国司徒令,命顺民之功力,以养五谷。君子之静居,而农夫修其功力极。然则天为粤宛,草木养长,五谷繁实秀大,六畜牺牲具。民足财,国富。上下亲,诸侯和。七十二日而毕。
睹庚子,金行御。天子出令,命祝宗选禽兽之禁,五谷之先熟者,而荐之祖庙,与五祀,鬼神飨其气焉,君子食其味焉。然而凉风至,白露下,天子出令,命左右司马内御。组甲厉兵,合什为伍,以修于四境之内。谀然告民有事,所以待天地之杀敛也。然则昼炙阳,夕下露,地竞环。五谷邻熟,草木茂实,岁农丰,年大茂。七十二日而毕。
睹壬子,水行御。天子出令,命左右使人内御。其气足,则发而止,其气不足,则发扪渎盗贼。数躁竹箭,伐檀柘。令民出猎禽兽,不释巨少而杀之。所以贵天地之所闭藏也。然则羽卵者不段,毛胎者不贕,娩妇不销弃。草木根本美,七十二日而毕。”
五行这种历法,以冬至为新年,冬至之日即甲子日。这就是五行中的第一天即木行的第一天,所以有”睹甲子,木行御,七十二日而毕“的说法。而到第七十三日为丙子日,是第二行火的第一天,一次类推至水行。经过五行中五个七十二天,计三百六十日,再加上五至六天的过年日,恰为一个回归年。而现在仍保存的小凉山彝族太阳历,与阴阳五行历完全相同,即过年日不用干支记日,而每年冬至均从甲子日开始。
根据学者80年代的考证,彝族太阳历有上万年的历史。不过这个古老的历法在中原,早在汉朝时候就失传了。
五运六气的历法推算已经是基于阴阳合历了。
老铁既然要研究农历,就该首先理解何为‘农’,何为‘历’。这里的‘农’是指中国古代高度发达的农耕文明,具体表现是精耕细作,标准化、规范化、制度化以求最大限度提高产出率,养活更多的人口。其中最重要的一点就是通过对天文的观察,实现对气候变化的准确测算,把握和利用。但前提是天文和气候这二者之间必须要有比较稳定的对应关系才行,不能夏行秋令,春行冬令,不能时令不正,气候无常,那样是种不好庄稼的,只能种草发展畜牧业,或者粗放型的农业种一些懒庄稼,也就不需要农历和时令这种古代的高科技了。
家庭和国家对时令的把握和管理的一切有关活动,都要基于天文和气候之间必须要有比较稳定的对应关系,才会有所谓的节气,以及与节气对应的农耕工作,乃至整个国家机器围绕农耕活动而产生的一系列的配套管理行为,就是高度发达的农耕文明。否则,如果天文和气候的对应不紧密,则农耕文明很难在古代发展,而这一点,就全球而言,不是必然的,比如在北美,天文和气候就不是稳定对应的,比如今天是我们这里的六月二十二日,应该是夏至了,早该到可以游泳的时令了,可却只有18度,还刮大风,只能开着泳池加热器缩在水里不敢露头。但这边也不是一直冷,就在一周前还气温高达三十度,烈日炎炎,但就是这么几天冷,几天热,平均温差能差十几度,从冬天到夏天,再从夏天到冬天,几乎年年都如此,忽冷忽热,气候很不稳定,这种情况就是制订了准确的天文历法,能发现稳定准确的24节气吗?对指导农业生产能有什么帮助吗?所以当地在古代根本就没有发展出与中国相提并论的农业文明,不是因为没有农历,而是因为没有稳定的节气,就是没有稳定的天文和气候的时间关系。
说了这么多,关键的原因是中国的优越的地形和地貌优势造成了农业文明和农历的产生:即,中国几条大的山脉和河流都是东西走向,横贯大陆,把南下的寒流阻挡住了,形成了中国几大平原比较稳定的封闭环境,让气候随着天文运行能稳定地变化,从冬到夏,再从夏到冬,周而复始,形成了基本稳定守时的24个节气。而其他多数地区就没那么幸运了,比如北美的几大山脉都是南北走向的,而且也都不高,没有屏障作用,所以西北方一有冷空气,就从西北到东南一下吹透了,北极圈打个冷喷嚏,恨不能佛罗里达都能一哆嗦,这还怎么种庄稼?所以北美印第安人只能打猎放牧。
因为中国优越的地理地形优势,让中国发展出了高度发达的古代农耕文明,而欧美国家的农业是在发展了工业文明,有了先进的技术,机械和化工材料后,才发展出来的。所以农历是非常中国本地化的历法,别的地方则只有历,而没有农,因为地理开放,节气无常。
如果想提高精度到秒级,参数会增加很多,运算量也会几何级数增长,不过,理论上秒级精度也可能出现正好计算的时间点正好在某分界点上的情况......
分钟级的计算,用书中的C程序源码就可以实现。印象中总共200行代码不到的样子。