技术分享
🌓中国农历 — 精巧又繁杂
00 分钟
2024-9-20
2024-10-2
type
status
date
slug
summary
tags
category
icon
password
小时候, 妈妈聊起今天是几号, 过几天又是几号, 我却觉得奇怪, 日历上今天不是 xx 号啊, 我指着刚认识不久的阿拉伯数字问 ~ 然后妈妈说, 这是阳历, 和老历不一样噢 ~ 后来我陆续听说了公历, 阴历, 儒勒历, 格里高利历, 阴阳历各种名词 … 那么它们到底是怎么制定的呢 ? 为什么要搞出这么多历法出来 ?
 
首先给出结论 :
  • 根据对太阳和月亮的描述, 历法的性质有阳历, 阴历, 阴阳历三种
  • 中国流行的两种历法为公历和农历
  • 公历即格里高利历, 是目前全世界流行的历法, 属于阳历, 而生活中我们习惯把 “阳历” 和 “公历” 当成一个东西
  • 中国农历, 本质上是阳历和阴历的结合, 属于 “阴阳历” , 但其更侧重对月亮的观察和描述, 所以 “阴历” 属性很高, 有时我们就误认为 “农历” 和 “阴历” 是一回事
  • 公历的特点是简单暴力, 农历的特点是符合生活实际但设计极为繁琐
 

简单直接的公历

 
公元前 46 年, 罗马统帅盖厄斯·儒略·恺撒在希腊数学家兼天文学家索西琴尼的帮助下制订新历法, 并在公元前 45 年 1 月 1 日起执行此历法以取代旧罗马历法, 所以人们就把这一历法称为儒略历, 16世纪前, 西方国家大多采用它. 儒略历以回归年为基本单位, 是一部纯粹的阳历. 它将全年分设为 12 个月, 单数月是大月, 长 31 日, 双数月是小月, 长为 30 日, 只有 2 月平年是 39 日, 闰年 30 日. 每年设 365 日, 每四年一闰, 闰年 366 日. 如此, 每年平均长度是 365.25 日 儒略历编制好后, 恺撒的继承人奥古斯都 ( 屋大维 ) 又从 2 月减去一日加到 8 月上( 8 月的拉丁名即他的名字奥古斯都 ), 又把 9 月、11 月改为小月, 10月、12 月改为大月. 但由于之前的罗马历法屎山在前, 屋大维属下的僧侣们又错误理解了 “隔三年设置一闰年”, 导致从前 45 年到前 9 年的三十六年里, 每三年就设置了一个闰年, 这又造成了灾难, 经后续奥古斯都修改后才勉强能用. 儒略历比回归年 365.2422 日长 0.0078 日, 400 年要多出 3.12 日. 公元前 45 年颁布的儒略历, 到公元 1582 年的时候已经累计相差十多天, 春分也从公元 325 定的 3 月 21 日提早到了 3 月 11 日. 由于误差实在太大, 1582 年罗马教皇格里高利十三世组织对儒勒历的修订, 推出了格里高利历(Gregorian calendar). 格里历给出新规 : 所有整数世纪年除了可被 400 整除的外一律不设闰年, 而为了解决积攒上千年的儒勒历误差, 又规定 : 1582 年 10 月 4 日之后的那天直接改为 1582 年 10 月 15 日, 但保持原有星期不变. 新颁布的历法理论上可以达到两万年内误差不超过一天, 但由于地球自转的变化, 实际到公元 4909 年误差就可达一天. 那么, 可以总结从儒勒历到格里历的公历特点了 : 大月小月和闰月的设计相当任性, 版本更新程序相当粗暴, 只要跟着太阳转, 不管优雅不优雅, 反正简单易用就够了
 

看月相的阴历

地球绕太阳一周为一个太阳年, 约为 365.2422 天, 公历经历了多次版本修订, 但其本质就是尽可能与太阳年接近, 地球绕太阳公转和黄赤交角的存在给人类带来了四季, 这显然很符合人类的需求. 但另一颗天体, 离我们最近的月球, 它给人类带来了潮汐往复, 同样值得人们研究, 于是阴历就出现了. 月相变化的周期约为 29.5 天, 于是以此作为一个周期就能开发出阴历了, 记月亮圆缺十二周为一年, 其历时 354 日 8 小时 48 分 33.6 秒. 显然阴历的最大缺点就是无法反映四季轮转, 比如回历中的新年, 有时出现在夏天, 很多年后就会出现在冬天了…
 

繁琐精妙的农历

当月球运行到太阳和地球中间的时候, 这个就叫做“朔”, 这天是农历初一. 当地球正好在太阳和月亮中间的时候, 就是月圆之夜, 这个就叫做“望”. 朔望月长约 29.53059 日, 即 29 天半多一点, 因日历必须用整数, 所以规定农历大月 30 天, 小月 29 天.
因小月 29 天, 少计了 0.53059 日, 就得把这少计了的 0.53059 日加起来放在下一个月, 那下个月就有了 30 天. 即使计了 30 天, 但还多出了 0.03059 日, 又得往下累加. 这个数无论大月还是小月, 都多出这个数. 那么一年就多出了 0.36708 日. 三年后, 就多出了 1.0124 日, 就必须在这一个小月上加上一天, 于是就会新增一个大月. 但即使加了这一日后, 还有 0.0124 日的零头, 又得与 0.53059 日加起来再往后累加 … 如此循环不已.
农历按照月亮的变化确定月份和日期, 按照地球公转来确定年份和二十四个节气. 为了解决十二个月历周期 ( 约 354 日 8 小时 48 分 33.6 秒 ) 和太阳日的差距, 又制定了闰月的概念, 从而形成了能体现四季分明的阴阳历.
闰月的分布大约是十九年七闰, 通常为 29 天, 是小月. 但也有例外, 按上述农历大小月的设置办法, 将零头数累加到正好有一天的那一个月如果正逢闰月, 就把这多出的一日加在这个闰月上, 那么这个闰月就有了 30 天, 成了大月了.
农历的大月小月设置很难象公历一样找到规律. 在我国大部分地区,可以在初二的日落后(傍晚)观察西边的天空有没有很细的月牙出现,如果有月牙出现,则说明初一的日月交朔时刻发生较晚,所以这个月应较长,是大月为 30 天; 没有月牙出现就说明初一的日月交朔时刻发生较早,这个就较短,是小月,为 29 日; 农历大月时,月亮一般是十六圆(望日), 小月时一般是十五圆(望日). 这个方法在大多数都是准确的.
可以看出农历的大月小月设置极其严格, 为了精准描述月亮的周期, 大月小月和闰月的分布规律极为复杂, 难以记忆.
 
农历与干支纪法和二十四节气还有密切的关联, 但我学艺不精就不细致讨论了.
 
农历在老一辈中影响力一直都很大, 我们家称之为 “老历”, 以前身份证刚普及时登记很草率, 他们基本都登记成农历生日的 ( 其实本质上享受了提前一个月退休 ), 我自己也习惯过农历生日, 直到上初中才知道自己公历生日是哪天 … 很多父辈和老人每天都记得农历日期, 而我就很难做到了, 虽然农历的影响力在年轻一代中越来越小, 但每逢重大节日, 我们还是得把这部古老的历法搬出来 ~
至于为何关心这个问题, 小时候爸爸说妈妈想过生日很难的 ~ 妈妈出生于农历四月三十日, 即大月的最后一天, 但四月在很多时候是作为小月出现的就没有三十日了. 通过这段程序, 我能计算妈妈每年的生日对应公历哪一天以及四月三十日能否出现 ( 当然, 如果是小月那么二十九日肯定也会给妈妈庆生 ~ ), 结论就是, 在 100 年内有 50 年四月都是大月, 刚好 1/2 的几率 ( 比公历生日的 02-29 要好一倍 )
 
 
下面这段程序统计了 1901 - 2100 两百年内的农历大小月情况, 发现有 1292 个大月, 即每年平均出现 6.46 个大月. 计算 6.46 * 30 + ( 1 - 6.46 ) * 29 = 354.46 天, 和十二圈月相的 354 日 8 小时 48 分也大致相近.
 
 
综上, 如果你有幸在农历大月底的三十日出生, 那很可能就会遇到某些年份过不了真正生日的情况. 但更麻烦的还是农历的闰月, 十九年七闰的概率还是挺大的, 而每次闰哪个月也不太好说, 甚至还有小概率闰月为三十天大月的可能, 如果运气不是很好, 可能几十年都遇不上自己的闰月生日了 ~
 
 

 
 
参考 :
 
 
 
上一篇
下一篇
再游津城

评论
Loading...