子午流注针法只需知道日、时干支就可推算取穴。实际上,现在用历书、手机或计算机的万年历程序等,均可方便地查询日干支。
为了便于大家深入学习其计算方法,下面列出两种日干支的算法,以供参考。
日干支一般用公历来算,主要是因为公历的大、小月有规律,容易计算日数。因本部分涉及计算较多,为便于表述,用[]表示取整数(不四舍五入),如23÷12的商取整数,表示为[23/12]=1;用mod表示取余数,如2015÷12的余数表示为2015mod12=11。
葛民勤介绍了用一个公式计算日干支的方法,需事先设定下列参数。
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)mod10
日地支序数=(8C+[C/4]+5Y+[Y/4]+[3(M+1)/5]+D+7+I)mod12
此法只用一个公式即可算出,算法较简便。
如计算2015年12月15日的日干支。由上述公式知:C=20,Y=15,M=12,D=15,I=6。
即算出日天干为第二个天干,按“甲、乙、丙、丁、戊、己、庚、辛、壬、癸”顺序,第二个是“乙”。
即算出日地支为第二个地支,按“子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥”顺序,第二个即“丑”。
故2015年12月15日的日干支为“乙丑”。
此法为先查出或算出元旦日干支,再算出所求日距当年元旦的天数,利用天干和地支的循环规律来求。因为日干支每60天循环一次,公历平年有365天,闰年有366天,故如果知道了某一年的元旦干支就可以推导出下一年元旦的干支:平年干支数加5,闰年干支数加6。
笔者已算出1901~2100年的元旦干支数及闰年情况(具体见表5-2)。
推算日干支公式:
日天干序数=(元旦天干序数+当日距元旦天数-1)mod10
日地支序数=(元旦地支序数+当日距元旦天数-1)mod12
如求2015年12月15日的日干支。查表5-2知2015年元旦干支数为14,12月15日距元旦的天数=1月至11月各月天数(注意若是闰年2月的天数为28天)+15-1(除去元旦当天)=31+28+31+30+31+30+31+31+30+31+30+15-1=348,则:
日天干序数=(14+348)mod10=2,即当日天干为“乙”
日地支序数=(14+348)mod12=2,即当日地支为“丑”
故2015年12月15日的干支为“乙丑”。
用北京时换算真太阳公式:
当地平太阳时与北京时之差=4分钟×(地方经度-120)(适用于中国)
因各个地方经度是个常数,故从公式可知各个地方的平太阳时差是个常数。如重庆市区的经度为东经106.54°,重庆市区平太阳时与北京时间之差=4分钟×(106.54-120)=-54,即重庆市区平太阳时比北京时间慢54分钟。
修正值是指当地真太阳时与平太阳时之差。
修正值=9.5分钟×Sin2L-7.7分钟×Sin(L+78°)
其中L=280°+0.9856°×(计算日距当年1月1日的天数)
从公式看出,修正值仅与日期有关系,即对于一年中的某一个日期,这个修正值是个常数。如每年7月27日,修正值均为“-6分钟”,即当地真太阳比当地平太时慢6分钟。
各日期修正值(当地平太阳时与真太阳之差值)见表5-4。
如计算重庆市万州区2015年12月15日9时20分的真太阳时。
查表5-4,12月15日真太阳时修正值=4.8分钟;查知万州区的经度108.35°,万州区平太阳时与北京时区时差值为4分钟×(108.35-120),即-46.6分钟;故万州区真太阳时=9时20分钟+(-46.6分钟)+4.8分钟=8时38分钟。可见,如果直接用北京时间的9时20分对应时辰为巳时,而真太阳时8时38分钟对应时辰为辰时。
时天干和时地支需分别推算。
时地支需用真太阳时推算,每2小时为1个时辰。每天的时地支顺序是固定不变的,具体可参见表5-5。如真太阳时的23:00~1:00为子时,11:00~13:00为午时。
时天干需根据日干支数进行推算,算法是先推算出各日子时的天干,然后根据循环规律算出对应时辰的天干。各日子时的规律如下:
日天干为甲和己,则子时的天干为甲;
日天干为乙和庚,则子时的天干为丙;
日天干为丙和辛,则子时的天干为戊;
日天干为丁和壬,则子时的天干为庚;
日天干为戊和癸,则子时的天干为壬。
也可用公式计算:
时天干数=[(日天干数-1)×2+时地支数]mod10
如在万州区的2015年12月15日9时20分,此时的真太阳时为8时38分,为辰时,按子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥顺序,时辰地支数为5,前面已经算出日天干为乙,即日天干序数为2,则:
此时辰天干数=[(2-1)×2+5)]mod10=7,即时天干数为“庚”。故时辰干支为“庚辰”。