农历天干地支算法

干 支 纪 年 法

   一.十支纪年是我国传统的纪年方法。
   1.干和支的含义:干支是天干,地支的合称。
     干指天干,共有10个符号:
    1  2  3 4  5  6  7  8  9  10
   甲 乙 丙 丁 戊 己 庚 辛 壬 癸


     支指地支,共有12个符号:
    1  2  3  4  5 6  7  8 9  10 11 12
   子 丑  寅 卯 辰 巳 午 未 申 酉 戌 亥


   2.干和支组合后用于纪年。即:将十天干和十二地支按顺序搭配组合成干支,用于纪年。按此排法,当天干10个符号排了六轮与地支12个符号排了五轮以后,可构成60干支。续排下去又将恢复原状,周而复始,即如民间所说“六十年转甲子”。

   二.查看不同时间段的万年历。如:1516—2060年的万年历,记着五百年的干支,一查便知。
   六十年甲子(干支表)
    1  2   3   4  5   6  7   8  9  10
   甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉

    11  12 13   14  15  16  17  18  19  20
   甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛己 壬午 癸未
    21  22  23  24  25  26  27  28  29  30
   甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳

    31  32  33  34  35  36  37  38  39  40
   甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯
    41  42  43  44  45  46  47  48  49  50
   甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑

    51  52  53  54  55  56  57  58  59  60
   甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥

   根据“六十年甲子(干支表)”的公元年对应进行向上或朝下地反推。如:《辛亥革命》的辛亥年是1911年(48号干支),《戊戌变法》的戊戌年为35号干支,比辛亥年早13年,则“1911-13=1898”故《戊戌变法》是1898年。
   应用公元年进行计算。应用公元年的某一年,聊以60(指六十年甲子),余数小于60,再用余数减去3(干支纪年是从公元4年开始使用的),便知。
   如2002年:2002÷60,余数为22,再22-3,得数是19,查六十年甲子(干支表)19号干支,得知是壬午年。

   三.结合实际了解“十二地支”
   1.用十二种动物分别与十二地支相配成为“十二生肖年”。(见下图)如凡是含有“子”的干支年,就是“鼠年”,这一年里出生的人都是属“鼠”;凡是含有“丑”的干支年就是“牛年”,这一年进而出生的人都是属“牛”。以此类推。(如下表)

     十二生肖年
    1  2   3   4  5   6   7   8  9   10  11  12
   子鼠 丑牛 寅虎 卯兔 辰龙 巳蛇 午马 未羊 申猴 酉鸡 戌狗 亥猪

    2. 以十二地支来表示十二时辰。
  一日有二十四小时,而我国传统则以十二个时辰来表示,即一时辰是二小时。(如下表)

 
      二十四小时和十二时辰对照表

    子   丑   寅   卯   辰   己
   23-01:01-03:03-05 :05-07:07-09:09-11


    午   未   申   酉   戊   亥
   11-13:13-15:15-17:17-19:19-21:21-23
  
  四、由公元推干支记年 
  为了便于运算和使检索更加直观,借用六十干支表并按顺序加以编号成表一如下:

    六十干支表

  甲子0  乙丑1 丙寅2 丁卯3 戊辰4 己巳5 庚午6 辛未7 壬申8 癸酉9 

  甲戌10 乙亥11 丙子12 丁丑13 戊寅14 己卯15 庚辰16 辛巳17 壬午18 癸未19 

  甲申20 乙酉21 丙戌22 丁亥23 戊子24 己丑25 庚寅26 辛卯27 壬辰28 癸巳29 

  甲午30 乙未31 丙申32 丁酉33 戊戌34 己亥35 庚子36 辛丑37 壬寅38 癸卯39 

  甲辰40 乙巳41 丙午42 丁未43 戊申44 己酉45 庚戌46 辛亥47 壬子48 癸丑49 

  甲寅50 乙卯51 丙辰52 丁巳53 戊午54 己未55 庚申56 辛酉57 壬戌58 癸亥59

  该表于公元前后的推算均适用,具体的方法如下:

  1,求公元后某年(设为Y)的干支。方法是:先以Y除以60得出余数,然后再减去4,最后根据所得结果查表一中相应序数所对应的干支即为该年的干支。

  例如求公元1911年的干支:1911÷60余数为51,减4后得47,查表一47对应的干支是辛亥,即1911年为辛亥年。由于干支纪年60年一循环,当Y÷60的余数小于4时,需借干支纪年的一个周期60之数,例如1981年除以60余数为1,直接减4不够减,加上60之后再减4等于57,查表一便知1981年为辛酉年。余可类推。

  2,求公元前某年(设为X)的干支。方法是:先以X除以60求其余数,再用57减去所得余数,根据所得结果再查表一中对应的干支,即为该年的干支。

  例如求公元前221年的干支:221÷60,余数是41,以57-41=16,查表一16对应的是庚辰,即公元前221年对应的干支应为庚辰。同样由于干支纪年的循环周期为60年,当余数大于57时,也需再借60。例如求公元前479年(孔子卒年)的干支:479除以60余59,用57减59不够减,加上60之后再减59等于58,查表一知该年对应的干支为壬戌。其余可以类推。

  上述方法简便易行,只要记住表一,就完全可以不用纸笔,直接由心算推出结果。

  五、速查干支农历纪月法

  其方法为:若遇甲或己的年份 ,正月是丙寅;遇上乙或庚之年,正月为戊寅;遇上丙或辛之年,正月为庚寅;遇上丁或壬之年,正月为壬寅;遇上戊或癸之年,正月为甲寅。依照正月之干支,其余月份按干支推算即可。详见下表:

年 份一月二月三月四月五月六月七月八月九月十月十一月十二月
甲、己丙寅丁卯戊辰己巳庚午辛未壬申癸酉甲戌乙亥丙子丁丑
乙、庚戊寅己卯庚辰辛巳壬午癸未甲申乙酉丙戌丁亥戊子己丑
丙、辛庚寅辛卯壬辰癸巳甲午乙未丙申丁酉戊戌己亥庚子辛丑
丁、壬壬寅癸卯甲辰乙巳丙午丁未戊申己酉庚戌辛亥壬子癸丑
戊、癸甲寅乙卯丙辰丁巳戊午己未庚申辛酉壬戌癸亥甲子乙丑

  由上可见,农历的月份,地支是固定的,天干却不固定,要经过推算才能排出。注意:农历的闰月是不记干支的。
  例如:2006年为‘丙戌’年,查天干年份为‘丙’子头,在上表的第三行,其正月为庚寅,二月为辛卯,三月为壬辰,余类推。

  六、速查干支纪日法

  从已知日期计算干支纪日的公式为:

  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 =117 
    除以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日的干支日是庚申日。

数据很详细 CREATE TABLE `zb_calendar` ( `GregorianDateTime` varchar(255) DEFAULT NULL COMMENT '公历日期时间', `LunarDateTime` varchar(255) DEFAULT NULL COMMENT '农历日期时间', `LunarShow` varchar(255) DEFAULT NULL, `IsJieJia` varchar(255) DEFAULT NULL, `LJie` varchar(255) DEFAULT NULL COMMENT '农历节日', `GJie` varchar(255) DEFAULT NULL COMMENT '公历节日', `Yi` varchar(255) DEFAULT NULL COMMENT '宜', `Ji` varchar(255) DEFAULT NULL COMMENT '忌', `ShenWei` varchar(255) DEFAULT NULL COMMENT '神位', `Taishen` varchar(255) DEFAULT NULL COMMENT '胎神', `Chong` varchar(255) DEFAULT NULL COMMENT '冲煞', `SuiSha` varchar(255) DEFAULT NULL COMMENT '岁煞', `WuxingJiazi` varchar(255) DEFAULT NULL COMMENT '五行甲子', `WuxingNaYear` varchar(255) DEFAULT NULL COMMENT '纳音五行年', `WuxingNaMonth` varchar(255) DEFAULT NULL COMMENT '纳音五行月', `WuxingNaDay` varchar(255) DEFAULT NULL COMMENT '纳音五行日', `MoonName` varchar(255) DEFAULT NULL COMMENT '农历月名称', `XingEast` varchar(255) DEFAULT NULL COMMENT '星宿吉凶(东方星座)', `XingWest` varchar(255) DEFAULT NULL COMMENT '四方(星座)', `PengZu` varchar(255) DEFAULT NULL COMMENT '彭祖百忌', `JianShen` varchar(255) DEFAULT NULL COMMENT '黄历12值神建', `TianGanDiZhiYear` varchar(255) DEFAULT NULL COMMENT '天干地支年', `TianGanDiZhiMonth` varchar(255) DEFAULT NULL COMMENT '天干地支月', `TianGanDiZhiDay` varchar(255) DEFAULT NULL COMMENT '天干地支日', `LMonthName` varchar(255) DEFAULT NULL COMMENT '农历月名称', `LYear` varchar(255) DEFAULT NULL COMMENT '生肖', `LMonth` varchar(255) DEFAULT NULL COMMENT '农历月', `LDay` varchar(255) DEFAULT NULL COMMENT '农历日', `SolarTermName` varchar(255) DEFAULT NULL COMMENT '农历节气的名称' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='万年历';
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值