分享

(203)子午流注算法系统归纳

 虚心 2015-11-08

子午流注算法归纳

苏绪林(整理)

一、干支纪时与算法

 

  (一)基本知识

1、农历采用“干支纪法”纪年、纪月、纪日,干支纪年法从公元54年(东汉建武三十年)开始,公元元年是辛酉年。

2、干支60年轮回一周(天干与地支的有关知识参见附件1)。

天干共有十个(代号1-9,0),即:甲、乙、丙、丁、戊、己、庚、辛、壬、癸。

地支共有十二个(代号1-11,0),即:子、丑、寅、卯、辰、已、午、未、申、酉、戌、亥。

把每一个天干和每一个地支按一定顺序一对一对地搭配起来,就成为从“甲子”到“癸亥”互不重复的六十对,称为“六十甲子”(见表1),用来作为纪年、纪月、纪日的代号,循环使用,从不间断,叫作“干支纪法”。它是我国古代历法中的一项重大发明和创造。

 

3、属相与干支的关系。

属相指十二生肖,即鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪。生肖不知起源于何时,最早见于东汉王充著的《论衡·物势篇》中。属相与干支间并没有任何内在联系。十二生肖与十二地支,数序相同,但内容全然不相及。我国古时用十二地支配属十二种动物,即子鼠、丑牛、寅虎、卯兔、辰龙、巳蛇、午马、未羊、申猴、酉鸡、戍狗、亥猪,用以纪某人出生的年份,或对某年的简称。如凡是“丑”年出生的就属牛,如在2009年、1997年、1985年年出生的人都属牛,这些年也都称为牛年。

4、干支纪年、月、日、时知识

(1)干支纪年

用干支纪年是用农历,所以若用公元年数套用农历干支纪年时要注意,农历每年的年尾的日期在公历里都是跨年的,即公历的1月和2月的某些日期是属于上一年农历的范围。例如2009年,相应于农历是己丑年,但2009年1月25日以前的日期仍是属于农历戊子年的范围,即农历己丑年是从2009年1月26日(春节)开始的。

(2)干支纪月法

在《史记·律书》中有详细记载,由于农历通常有十二个月,而地支又是十二个,所以各月的纪月地支是固定的。这种以十二地支固定分配年内各月,叫作“建”,如建子、建丑等。将各月的地支,再配上天干,就构成了干支纪月法。在不同的朝代,年的开始月份对应的地支也不同,有以建寅为正月的,有以建子为正月的,有以建亥为正月的。现今以建寅为正月,是从西汉《太初历》开始的。查干支表,带“寅”的干支只有五个,即丙寅、戌寅、庚寅、壬寅、甲寅。如甲子年丙寅开始,二月为丁卯,……十二月为丁丑;接着是乙丑年戊寅为正月,丙寅年庚寅为正月,丁卯年壬寅为正月,戊辰年甲寅为正月。再继续下去,己巳年又是丙寅为正月,二月为丁卯,……。所以干支纪月法以五年为一周,循环使用。

   (3)干支纪日法

   早在殷代就已经使用了,其顺序到现在是否有无间断或错乱,尚需考证。但已确切知道以春秋鲁隐公三年(公元前722年)二月己巳日起,一直延续至今,中间从未间断和错乱过,已经有二千七百年的历史,这是世界上最长的纪日法。欲求公历某月某日的纪日干支很容易,因为公历的历月、历年所包含的日期有一定规律,所以它的纪日干支也有一定规律,只要知道任何一天的纪日干支就行了。例如,1986年元旦是乙巳日,那么到6月22日,其间有172天,去掉60的倍数,尚余52天,查干支表,从乙巳往后数52,即是6月22日的纪日干支为丁酉日。现今纪日干支仍在使用着,如确定三伏和梅季的起讫日期,就由纪日干支推算的。

(4)干支纪时法

一是指用地支记述一昼夜之间的时段。将一昼夜划分为12个时段(从汉开始):最初不是以地支命名,而是以下列名称指代:夜半、鸡鸣、平旦、日出、食时、隅中、日中、日昳(yi4)、晡(bu1)时、日入、黄昏、入定。公元前104年,汉武帝颁行《太初历》之后,渐以十二地支的名称取代上述名称。

十二地支纪时(十二辰纪时)和天象纪时及24时的对应关系是:

24时

23-1

1-3

3-5

5-7

7-9

9-11

11-13

13-15

15-17

17-19

19-21

21-23

地支

天象

夜半

鸡鸣

平旦

日出

食时

隅中

日中

日昳

日晡

日入

黄昏

入定

二是指用干支组合的60组名称循环记述一昼夜的时间段。每5天干支纪时就要循环一周。从甲子日起,这一天干支时段的次序是,甲子、乙丑……,则次日乙丑日干支纪时应是丙子、丁丑……,……,第5日干支纪时至癸亥终。干支循环整一周。

下一周,如接着上一循环的纪日干支说,第6日则是己巳日,纪时干支又需从甲子开始,……,第10时癸酉时,干支纪时至癸亥终。

如上述10日中,天干纪日循环一次,而干支组合的60组名称却循环两次。由此得出以上结论:

日天干为甲和己时,则子时的天干为甲;

日天干为乙和庚时,则子时的天干为丙;

日天干为丙和辛时,则子时的天干为戊;

日天干为丁和壬时,则子时的天干为庚;

日天干为戊和癸时,则子时的天干为壬。

整理成表如下(表2):

 (二)干支纪时算法

  有相对算法和公式算法。相对算法是根据干支纪时的循环规律,用已知的较近的干支纪时来求干支。如2008年是戊子年,那2009年就是己丑年;正月是丙寅月,二月就是丁卯;3日丁未,5日就是己酉;20时甲戌时,下一个时辰21-23时就是乙亥时。

公式算法是在没有已知干支参照的情况下,根据干支的循环规律用一些公式来推算。

1、计算农历年干支(每60年循环一次)

   (1)年干支序数=(农历年数-3)÷60后的余数(公式1-1)

   (2)年干数=(农历年数-3 )÷10后的余数(即取个位数,0作10即癸)(公式1-2);

(3)年支数=(农历年数-3)÷12的余数 (0作12计即亥)(公式1-3);

    例1-1:求农历2009年的年干支?

第一种方法用公式1-1:(2009-3)÷12的余数为26,对照表1(60甲子表)第26号为“己丑”。

第二种方法用公式1-2和1-3:(2009-3)÷10的余数为6,算出年天干为“己”;(2009-3)÷12的余数为2,算出年地支为“丑”,年干支合起来为“己丑”。

     2、计算农历月干支(每5年循环一次)

(1)农历月天干序数与年天干序数有关系,甲或己的年份,正月是丙寅;乙或庚之年,正月为戊寅;丙或辛之年正月为庚寅,丁或壬之年正为为壬寅,戊或癸之年正月为甲寅;依次推之。

用公式记作:月天干序数=(年天干序数×2+月数)÷10取余数(公式2-1)。

(2)因每年正月为寅,故从正月至十二月的地支依次为:

月份

十一月

十二月

正月

二月

三月

四月

五月

六月

七月

八月

九月

十月

月支

     用公式记为:月地支序数=(月数+2)÷12取余数(公式2-2);

     例2-1:计算2008年5月12日(农历戊子年四月初八)的月干支?

     用公式2-1:月天干=(5×2+4)÷10得余数为4,即月天干为“丁”;

用公式2-2: 月地支=(4+2)÷12得余数为6,即月地支为“巳”。

故月干支合为“丁巳”。

3、计算日干支(每60天循环一次)

日干支一般用公历来算,主要是因为公历的大、小月有规律,容易计算日数。

方法一:查到各年的元旦日干支,再算出所求日距当年元旦的天数,利用天干和地支的循环规律来求。

第一步:查出或算出当年的元旦干支。因为日干支每60天循环一次,公历平年有365天,闰年有366天,故如果知道了某一年的元旦干支就可以推导出下一年元旦的干支:平年干支数加5,闰年加6如求1980至2080年间元旦干支可用下列公式算出:

(1)设(年数-1980)÷4的商为A,余数为B(公式3-1);

(2)当B=0时,

元旦天干数=((年数-1980)×5+A)÷10取余数(公式3-2);

元旦地支数=((年数-1980)×5+A+10)÷12取余数(公式3-3);

(3)当B≠0时,

元旦天干序数=((年数-1980)×5+A+1)÷10取余数(公式3-4);

元旦地支序数=((年数-1980)×5+A+10+1)÷12取余数(公式3-5);

   以上实际上是处理闰年的问题,被4整除且不被100整除为闰年,能被400整除为闰年,其余年不闰。闰年的2月有29天,不闰之年的2月有28天。

第二步:算出当日距元旦天数,设为C。

C=依次累加当日前各月天数+当日日期(公式3-6)。

第三步:算出当日干支。

日干支的推算公式为(适用公元1年之后):

日天干序数=(元旦日天干序数+C-1)÷10取余数(公式3-7)

日地支序数=(元旦日地支序数+C-1)÷12取余数(公式3-8)

第二、三步有另外一种算法:利用循环规律,用各个月加减数算,各月加减数如下表:

月份

一月

三月

四月

五月

六月

七月

九月

十一月

十二月

天干

-1

0

-2

-1

-1

0

0

1

2

2

3

3

地支

-1

0

10

5

-1

6

0

7

2

8

3

9

闰年

0

0

1

1

1

1

1

1

1

1

1

1

计算公式为:

日天干序数=(元旦日天干序数+当月天干加减数+日期数+闰年修正值)÷10取余数(公式3-7-1);

日地支序数=(元旦日天干序数+当月天干加减数+日期数+闰年修正值)÷12取余数(公式3-8-1)

上述方法需要查出元旦干支,且所用公式繁多,故容易出错。

方法二:用绝对公式计算,需事先设定下列参数:

C=(世纪数-1);

          Y=年数后两位(计算1月、2月时取Y-1);

          M=月数(1月、2月分别取为13、14);

          D=日期数

          I=0或6(奇数月取0,偶数月取6)

          符号[]表示取整数;

日天干=[4C+[C/4]+5Y+[Y/4]+[3(M+1)/5]+D-3]/10取余数(公式3-9);

日地支=[8C+[C/4]+5Y+[Y/4]+[3(M+1)/5]+D+7+I]/12取余数(公式3-10);

例3-1:求2009年1月29日的干支?

用上述方法一计算:

第一步:求2009年元旦干支:

公式3-1:(2009-1980)÷4商为7,余数为1;余数不为0;故用公式3-4和3-5计算。

2009年元旦天干=((2009-1980)×5+7+1)÷10取余数=3;

2009年元旦地支=((2009-1980)×5+7+11)÷12取余数=7;

第二步:求当日距2009年1月1日的天数。

用公式3-6,C=29;

第三步:求2009年1月29日干支。

用公式3-7:当日天干=(3+29-1)÷10取余数=1;或用公式3-7-1:当日天干=(3-1+29+0)÷10取余数=1

用公式3-8:当日地支=(7+29-1)÷12取余数=11;或用公式3-8-1:当日地支=(7-1+29+0)÷12取余数=11。

故2009年1月29日的干支为“甲戌”。

用上述方法二计算:

C=20;Y=8;M=13;D=29;I=0;

公式3-9:日天干=[4×20+[20/4]+5×8+[8/4]+[3×(13+1)/5]+29-3]/10取余数=[80+5+40+2+8+29-3]/10取余数=1;

公式3-10:日地支=[8×20+[20/4]+5×8+[8/4]+[3×(13+1)/5]+29+7+0]/12取余数=[160+5+40+2+8+29+7+0]/12取余数=11;

故2009年1月29日的干支为“甲戌”。

  4、计算时干支(每5天循环一次)

(1)时地支数=([(当时时间+1)/2]+1)/12取余数(注当时时间取值为0-24)(公式4-1);

(2)时天干数=((日天干数-1)×2+时地支数)/10取余数(公式4-2);

   4-1:计算2009129(甲戌日)1343分的时干支?

用公式4-1:时地支数=([(13+1)/2+1])/12取余数=8;

用公式4-2:时天干数=((1-1)×2+8)/10取余数=8;

时干支为“辛末”时。

5、子午流注用干支纪时的计算

    子午流注、灵龟八法、飞腾八法均需要用时干支来推算取穴。综合上述求年、月、日、时干支的方法,其中年、月的干支需要用农历,但到目前为止求农历日期还没有简单的公式可用,推算过程也非常繁杂,所以一般都用万年历来查。在使用子午流注取穴时,一般的可用万年历来查日、时干支。

如果需要用公历时间来求时干支,较直接的方法是用公式3-9、3-10和公式4-1、4-2来求。

如果用计算机来管理,可事先查表将各年农历日期的信息存储起来,再使用上述各种公式和计算机程序语言来计算年、月、日、时干支。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多