剑三重置版周斌举:三伏天的算法——夏至后第三个庚日的算法

来源:百度文库 编辑:偶看新闻 时间:2024/04/18 13:05:19

三伏天的算法——夏至后第三个庚日的算法

标签:

庚日

干支

天干

数伏

纪月

三伏算法

文化

冬练三九

夏练三伏

分类: 笔随心动

    古语讲一个人奋发练武道“冬练三九,夏练三伏”,可见“三九”是一年中最冷的时节,“三伏”是一年中最热的时节。那么“三九”和“三伏”怎么计算呢?

    大家都知道,“三九天”比较好计算,即从冬至后便开始“数九”,“一九二九不出手,三九四九冰上走,五九六九沿河看柳,七九河开,八九燕来,九九归一九,犁牛遍地走。”

    然而“三伏”计算起来就比较麻烦了,你询问老人,或者在搜索引擎里搜索,得到的答案是:夏至后第三个庚日开始为头伏(初伏),第四个庚日为中伏(二伏),立秋后第一个庚日为末伏(三伏),每伏十天共三十天。有的年份“中伏”为二十天,则共有四十天。说得好像很清楚,但是你还是不知道从哪天开始“数伏”。

    那么,这夏至后第三个庚日怎么计算呢?这就要牵扯到我国古代的干支纪年、纪月、纪日法。即以甲、乙、丙、丁、戊、己、庚、辛、壬、癸十天干和子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥十二地支按照顺序组合起来纪年、纪月、纪日。因此,如果你只要知道某一个公园日期对应的的干支日期,就能够推算出另一个公元日期的干支日期。这里有人总结出一个公式:

 

  G = 4C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d - 3
  Z = 8C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d + 7 + i

  其中 C 是世纪数减一,y 是年份后两位,M 是月份,d 是日数。1月和2月按上一年的13月和14月来算。奇数月i=0,偶数月i=6。G 除以10的余数是天干,Z 除以12的余数是地支。
  计算时带[ ]的数表示取整。

  例如:查2006年4月1日的干支日。 将数值代入计算公式。
  G =4*20 + [20 / 4] + 5*06 + [06 / 4] + [3 * (4 + 1) / 5] + 1 - 3 =197
  除以10 余数为 7 ,天干的第7位是‘庚’。
  Z =8*20 + [20 / 4] + 5*06 + [06 / 4] + [3 * (4 + 1) / 5] + 1 + 7 + 6 =213
  除以12 余数为 9 ,地支的第9位是‘申’。
  答案是:2006年4月1日的干支日是庚申日。


    下面我们来算一算公元2010年哪天开始数伏:

    2010年的夏至是6月21日。用以上的方法可以计算出6月21日是壬寅日。天干上“庚”是第七位,“壬”是第九位,因此夏至后的三个庚日应该是夏至后的第28天,也就是2010年7月19日,就是今天哦!