西西河

主题:【求助】农历的问题 -- 铁手

共:💬108 🌺611 🌵1 新:
分页树展主题 · 全看首页 上页
/ 8
下页 末页
    • 家园 可以看一下王晓华的《算法的乐趣》

      其中有一个算法,采用vsop-82/87行星计算理论,有原理和例程,可以以分钟级精度计算日月合朔和节气具体时间,在此基础上推算农历即可。我用此程序计算过1800-2099之间300年的数据,用近几年的节气数据对比了一下,确实可以到分钟级。实际使用的时候可以先算好保存成数据库,用的时候查表比较方便。

      通宝推:四方城,陈王奋起,铁手,
      • 家园 程序并不复杂

        如果想提高精度到秒级,参数会增加很多,运算量也会几何级数增长,不过,理论上秒级精度也可能出现正好计算的时间点正好在某分界点上的情况......

        分钟级的计算,用书中的C程序源码就可以实现。印象中总共200行代码不到的样子。

      • 家园 分钟级可能不够用

        合朔的时刻如果在0点附近,微小的差距就可能造成初一对应的公历日期差一天,这个差理论上还可能造成置闰的变化,也就是把闰月放在完全不同的农历月之后,这样就会造成更大的差别。当然不是专业人士,也不能完全确定最近的几百年会不会有这样的情况发生。

      • 家园 多谢多谢。

        我会尽快想法买一本这个书,看看复杂不复杂。不过不管怎样,看看算法也会很有意思

        • 家园 程序主要两个部分 -- 有补充

          一是日期时间转太阳月亮黄经度数,一是由黄经度数用牛顿迭代法转日期。另外就是进动等误差修正和视差修正,儒略历转换。

          希望对您有帮助。

          作者 对本帖的 补充(1)
          家园 更正一下 -- 补充帖

          应该是儒略日转换,不是儒略历转换。一字之差,含义差别大了。

        • 见前补充 4634547
        • 家园 这本书的源码在GitHub上

          https://blog.csdn.net/orbit/article/details/84594174

    • 家园 我也看到了✧香港天文台✧提供的

      用来计算农历-公历的 Python & C codes 的网页。

      自己也可以算吧?农历的节气是根据太阳轨道/黄道的角度来确定的;地球围着太阳转一圈360°,每15°,进一个节气。

      古人就是这么算的:中国古代历法阴历&阳历的综合。阳历不是“洋历”😄 阴历根据月球运行的轨道,天文历法上称为“白道”。阳历根据太阳运行的轨道,天文历法上称为“黄道”。把黄道分成24等分,每15°,一个节气。

      点看全图

      点看全图

      通宝推:zen,方平,陈王奋起,铁手,
      • 家园 长知识。以前没怎么重视二十四节气

        现在看来应该要重视了。

        如果我理解没错的话,二十四节气实际上是农历里极其重要的一部分,没有它也就难以确定各节日的时间。我一直以为只和月亮有关。

        • 家园 铁手老大可以看看“十二月建”

          这是根据二十四节气而来的节气月,特殊之处是这十二个月没有大小月之分,理论上是将一年十二等分。

          十二月建

          如果传说是正确的,二十四节气是由四时八节扩展而来,那这套体系的历史至少也有5000年了。夏代就开始的“正月建寅”,决定了现在春节是在立春附近;而“十一月建子”现在造成农历的规范“冬至必须在农历十一月”,从而造成了2033年闰月改变的问题。

          而“十二月建”只是“干支历”的一部分,“干支历”也已经有几千年的历史,而且从未错乱。不象农历,由于置闰以及算法问题实际上很乱。而现行公历也有置闰的问题(虽然不象农历那么明显),造成实际上少了10天(1582年),而发生在俄国1917年11月的革命也成了“十月革命”。而“干支历”虽略显繁琐但几千年来在史书上从未断绝也从未错乱,从这点上看中华民族真的不愧于最伟大的民族,光这份韧劲整个蓝星上就没谁能比。

          通宝推:铁手,
分页树展主题 · 全看首页 上页
/ 8
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河