算法系列-四柱计算
日期:2018-4-17 16:54:39
作者:ack
访问:2482
一、前言
关于四柱较为精确计算是个很复杂的事情,本文只记录大致的原理。本文的计算举例都是在没有考虑节气的情况下。这点要注意。
下面计算都是以北京时为准。(经纬度为北京)
二、计算设定
天干地支对应到计算机是相应的有序数字
天干:从甲到癸 = 0到9
地支:从子到亥 = 0-11
三、年柱计算
年份计算是从格力高历(公历)转成60甲子的年份,这里不考虑二十四节气的影响,只讨论简单的年份转成60甲子的天干地支组合。
因为格力高历转60甲子没有精确的公式,所以无法套用,只能以某一个已知60甲子年份的格力高历的年份去推算。
比如 1984年为甲子年(也可是其他)
计算现在1985年的60甲子年份干支组合
1985 - 1984 = 1
计算天干:
1 对10取余为1 所以天干为乙
计算地支
1对12取余为1 所以地支为丑
综上计算1985年的干支组合是乙丑
计算2018年干支组合
2018-1984 = 34
计算天干:
34 对 10 取余 为4,所以天干为戊。
计算地支:
34 对12取余为10,所以天干为戌。
综上计算2018年的干支组合为戊戌
上面计算的都是大于1984年的,如果是以前年份呢?
计算方式一样比如 1983年
1983-1984 = -1
计算结果为负数,
计算天干
这个就需要用-1+10 (10为天干总个数)再对10取余就是9了,所以天干为癸。
同理,地支为-1+12再对12取余为就是11,所以地支为亥
综上计算1983年干支组合为癸亥
三、月柱计算
关于月份的计算是这样:格力高历---->农历---->月份干支组合
从格力高历转农历这个比较复杂,涉及到了二十四节气,本文不打算讲解。只说农历到月份的干支组合。
四柱月份干支组合古人早有相关的“顺口溜”了,就是“五虎遁”
甲己之年丙作首
乙庚之岁戊为头
丙辛必定寻庚起
丁壬壬位顺行流
若问戊癸何方发
甲寅之上好追求
甲己之年丙作首:如果天干是甲或者己的年份,那么寅月的天干为丙。
乙庚之岁戊为头:如果天干是乙或者庚的年份,那么寅月的天干为戊。
丙辛必定寻庚起:如果天干是丙或者辛的年份,那么寅月的天干为庚。
丁壬壬位顺行流:如果天干是丁或者壬的年份,那么寅月的天干为壬。
若问戊癸何方发,甲寅之上好追求:如果天干是戊或者癸的年份,那么寅月的天干为甲。
为了方便记忆可以这么记:上面的都是天干五合,后面寅月的天干生五合后的五行。
比如:甲己合土,丙火生土。可以这么记。
通过上面的方法,我们在已知年的干支组合时,就可以很方便的计算出月份的干支组合了。
还有就网上找规律的计算方法,其实和“五虎遁”是一样的。可以参考以下的方式。
三、日主计算
日主的计算和年柱的计算差不多。计算过程如下:
以 格力高历2000年1月1日也就是元旦为基准,要计算的日期计算出与这天差的天数n
具体天数的计算都是采用的是儒略日
2000年1月1日这天的干支为戊午,天干序号4, 地支序号 6
所以日柱
A = |n + 10 + 4|
B = |n + 12 + 6|
上面的A和B都要取绝对值
天干 = A % 10 //加10修正结果
地支 = B % 12 //加10修正结果
比如2000年1月2日这天干支信息用上面的计算方法可以得出
天干 = (1 + 10 + 4) % 10 = 5 5就是天干"己"
地支 = (1 + 12 + 6) %12 = 7 7就是地支"未“
这天就是己未日
比如1999年12月31日这天干支信息用上面的计算方法可以得出
天干 = (-1 + 10 + 4) % 10 = 3 5就是天干"丁"
地支 = (-1 + 12 + 6) %12 = 5 7就是地支"巳“
这天就是丁巳日
四、时主计算
时柱的计算地支很简单了
首先看地支
23点----1点 为子时
1点----3点 为丑时
3点----5点 为寅时
5点----7点 为卯时
7点----9点 为辰时
9点----11点 为巳时
11点----13点 为午时
13点----15点 为未时
15点----17点 为申时
17点----19点 为酉时
19点----21点 为戌时
21点----23点 为亥时
上面的时间都是手表时
天干的计算可以用“五鼠遁”
甲己还加甲,乙庚丙作初。
丙辛从戊起,丁壬庚子居。
戊癸起壬子,周而复始求
甲己还加甲——逢日干是甲或己的日子,子时的时干从甲上起!
乙庚丙作初——逢日干是乙或庚的日子,子时的时干从丙上起!
丙辛从戊起——逢日干是丙或辛的日子,子时的时干从戊上起!
丁壬庚子居——逢日干是丁或壬的日子,子时的时干从庚上起!
戊癸起壬子——逢日干是戊或癸的日子,子时的时干从壬上起!
这个和月柱计算方法相似,
也可以参考网上的方法找规律,和“五鼠遁”是一样的
五、总结
上面简单介绍了四柱八字的计算方法,关键的是加上节气后的计算才是正确的,而节气的计算是重中之重。