快速通过公历计算日柱的方法

首发于微信公众号 <<道家阴符文化>> 2019-10-11 本文省略配图

术数里经常需要使用干支历法,现在人一般都使用手机排盘,或是上网查询,但是有时遇到手头没有排盘软件,或是超出排盘软件计算的日期时,计算干支便成了一个比较麻烦的事。

年月总归是比较好记的,对大多数人来说,最难的便是日柱的计算方法。

一般快速计算可以使用著名的高氏日柱公式,通过它来计算干支,还需要要配合辅助公式使用:

辅助公式:X = 44 (C-17) + (C-17)/4 +3

日柱公式:r=s/4 *6 +5(s/4*3+u)+m+d+x

r:日柱的母数,r除以60的余数即是日柱的干支序列数;

s:公元年数后两位数,s/4 只取整数部分;

u:s除以4的余数;

m:月基数

d:日期数

x:世纪常数

比如计算1949年10月1日的日柱,首先要计算X,1949年,是20世纪,所以C就为20

X= 44(20-17)+(20-17)/4 +3

X= 135

得到的x,除以60取余数,得15,代入到日柱公式中,即:

r=s/4 *6 +5(s/4*3+u)+m+d+15

49年,s要取减1,那么s就是48,而m为月基数,所以需要查表:

因为为10月1日 ,所以m为33,d为1,,所以可以再进行代入:

r=49/4 *6 +5(49/4*3+u)+33+1+15

注意u,它是48除以4取的余数,所以u=0,所以:

r=48/4 *6 +5(48/4*3+0)+33+1+15

r=72+180+33+1+15

r=301

最后可得 r = 301,按60取余数得1,1即是甲子,所以1949年10月1日是甲子日。

同样的,用来计算一下2000年1月1日的日柱,21世纪自然C-21,所以:

X=44(21-17)+(21-17)/4 +3

X=176 + 1 + 3

X=180

对60取余,为0,所以x=0,而2000年,取最后两位00减1为99,代入日柱公式

r=s/4 *6 +5*(s/4*3+u)+m+d

r=99/4*6 +5*(99/4*3+3) + 0+1

r=24*6+5*(26*3+3) +1

r=148.5+386.25+1

r=535.75

取整后,为535,对60取余得55,干支列表中的第五十五位:戊午,故2000年1月1日的日柱为戊午。

这种计算还需要把月的基数表记忆下来,而且s还要减1换算,u又在其中是代表取余,着实麻烦,是否有看起来思维负担不那么重的方法?

答案是有的,在维基百科上有一个公式是这样的:

r= 44*c + INT(c/4) + 5*y + INT(y/4) + 30*(m+1) + INT(3*(m+1)/5) + d +7;

这里的计算就比较简单了,INT代表的是括号里的运算只取整数,不用取小数,比如2019年10月11日,它的变量是这样的:

c=20

y=19

m=10

d=11

然后代入计算便可以了,尤其是这个公式,可以不用涉及小数运算,凡是除不尽的,都直接忽略掉小数,举例来说,这个变量代表入后,公式即为:

r= 44*20 + INT(20/4) + 5*19 + INT(19/4) + 30*(10+1) + INT(3*(10+1)/5) + 11 +7;

r= 880 + 5+95+4+330+6+11+7

r= 1338

1338按60取余,得18,即第18个干支。

用18对10取余,得8,这为天干序数,第八个为辛

用18对12取余,得6,这为地支序数,第六个为巳

所以此日柱为辛巳。

但值得注意的是,这个公式只适合1582年后的格里历的算法,如果是1582年以前的儒勒历,则需要把C的系数改成45,而最后的+7改为加5。

为清晰分列如下:

格里历:r= 44*c + INT(c/4) + 5*y + INT(y/4) + 30*(m+1) + INT(3*(m+1)/5) + d +7;

儒勒历:r= 45*c + INT(c/4) + 5*y + INT(y/4) + 30*(m+1) + INT(3*(m+1)/5) + d +5;

发表评论

电子邮件地址不会被公开。 必填项已用*标注