来历
古书相传,黄帝时代有位大臣,名叫大挠,此人“深五行之情占年纲所建,于是始作甲乙以名日谓之干;作子丑以名月谓之支,干支相配,以成六旬”,意思是说干支是由大挠最先创作的。实际上,这只是传说。从古代的史实看来,干支和干支纪法的产生也如同“火”的发现一样,是广大劳动者在生产和生活的长期实践中形成并逐步发展起来的,它的产生并不能归功于某一个人,也不能划清于某个时代。从殷墟甲骨片中文字已有干支象形(如图1),殷代帝王也多用天干的名字,作为他的代号,所以殷朝已有干支毫无疑义。
干支纪日从商朝便已开始,但其顺序到春秋时代有无间断或错乱过,尚待考证。截止2013年6月已确切知道:从春秋鲁隐公三年(公元前720年)二月己巳日起到清宣统三年(公元1911年)止,2600多年中从未间断和错乱过。1912年民国元年采用公元纪年后,汉族民间仍沿用干支纪日法,百年来也未错乱。干支纪日法是商朝历法的最大成就,这是现今已知世界最长的纪日法,对于我国历史学,尤其是科学技术发展史的考证和研究,都是极为重要的记时标志,是中国一份珍贵的科学文化遗产。
如《肴之战》:“夏四月辛巳,败秦军于肴。’“四月辛巳”指农历四月十三日;《石钟山记》“元丰七年六月丁丑”,即农历六月九日;《登泰山记》“是月丁未”,指这个月的二十八日。古人还单用天干或地支来表示特定的日子。如《礼记·檀弓》“子卯不乐”,“子卯”,代指恶日或忌日。
日柱公式
由于公历与干支纪法的体系和周期完全不同,因此它们之间的换算问题比较复杂。尤其是求解公历任一日的日干支是十分困难的,主要依靠查询万年历解决。作者经过潜心研究,探究推导出──计算公历任一日干支的历法公式,简称《高氏日柱公式》。此公式采用插入世纪常数和月基数的方法,简捷准确而又科学实用,彻底解决了由来已久的历法换算难题。在“不查万年历,日柱早知道”的具体问题上具有极大的实践意义。
1.高氏日柱公式
各符号意义
r:日柱的母数,r除以60的余数即是日柱的干支序列数;
s:公元年数后两位数减1,取整数值商;u:s除以4的余数;
m:月基数 d:日期数 x:世纪常数
注意:闰年2月之后,求出的r需要再加1。
2 世纪常数
现将17世纪至26世纪一千年间的世纪常数x,对应列表如下:
世纪数N | 17 | 18 | 19 | 20 | 21 |
年限 | 1601-1700 | 1701-1800 | 1801-1900 | 1901-2000 | 2001-2100 |
世纪常数x | 3 | 47 | 31 | 15 | 0 |
世纪数N | 22 | 23 | 24 | 25 | 26 |
年限 | 2101-2200 | 2201-2300 | 2301-2400 | 2401-2500 | 2501-2600 |
世纪常数x | 44 | 28 | 12 | 57 | 41 |
1.3 月基数
月基数m,即为前几个月的日数总和除以60的余数。
详见下表:
月份 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
月基数 | 0 | 31 | -1 | 30 | 0 | 31 | 1 | 32 | 3 | 33 | 4 | 34 |
应用举例
例1:计算1949年10月1日即建国当日的日柱,则有s=49-1=48;u=0;m=33;d=1;x=15,将各项数据代入高氏日柱公式可得:
r=12×6+5×(12×3+0)+33+1+15=301
故301除以60的余数为1,即当日的日柱为甲子。
例2:计算2008年5月12日即汶川地震当日的日柱,则有s=8-1=7,u=3,m=0,d=1,x=0,由于2008年为闰年,则2月之后的计算结果需要再加1。将各项数据代入高氏日柱公式可得:
r=1×6+5×(1×3+3)+0+12+0+1=49
故49除以60的余数为49,即当日的日柱为壬子。
例3:计算1895年4月17日即马关条约签订当日的日柱,则有s=95-1=94,u=2,m=30,d=17,x=31,将各项数据代入高氏日柱公式可得:
r=23×6+5×(23×3+2)+30+17+31=571
故571除以60的余数为31,即当日的日柱为甲午。
结论与扩展
高氏日柱公式的成功之处在于:以世纪为运算区间,并引入了世纪常数这一重要的概念。使得日柱的求解在两位数以内进行,极大地简化了求解日柱的过程,实现了编写计算代码的可行性,且能够运用于心算。是日柱求解方法的一大创举和进步。月基数的引入也在很大程度上简化了求解日柱的过程。经过进一步研究,作者发现世纪常数和世纪数之间也存在着对应关系,其关系公式(高氏日柱公式的辅助公式)如下:
C为世纪数,X为世纪常数的母数。取整数值,X除以60的余数即为世纪常数x。
日干支推算表
日干支推算表,又名日柱推算表、一纸万年历。主要用于推算日干支。一张表,能推算出表上各年的每一天的干支,十分快捷,袖珍便携,是真正的一纸万年历。山东任红岩原创,推荐给广大命理师,从此日柱瞬间可知。一纸万年历,日柱瞬间觅。
年 | 数 | 年 | 数 | 年 | 数 | 年 | 数 | 年 | 数 |
1950 | 31 | 1960 | 24 | 1970 | 16 | 1980 | 9 | 1990 | 1 |
1951 | 36 | 1961 | 29 | 1971 | 21 | 1981 | 1991 | 6 | |
1952 | 42 | 1962 | 34 | 1972 | 27 | 1982 | 19 | 1992 | 12 |
1953 | 47 | 1963 | 39 | 1973 | 32 | 1983 | 24 | 1993 | 17 |
1954 | 52 | 1964 | 1974 | 37 | 1984 | 30 | 1994 | 22 | |
1955 | 57 | 1965 | 50 | 1975 | 42 | 1985 | 35 | 1995 | 27 |
1956 | 3 | 1966 | 55 | 1976 | 48 | 1986 | 40 | 1996 | 33 |
1957 | 8 | 1967 | 0 | 1977 | 53 | 1987 | 45 | 1997 | 38 |
1958 | 13 | 1968 | 6 | 1978 | 58 | 1988 | 51 | 1998 | 43 |
1959 | 18 | 1969 | 11 | 1979 | 3 | 1989 | 56 | 1999 | 48 |
年 | 数 | 年 | 数 | 年 | 数 | 年 | 数 | 年 | 数 |
2000 | 54 | 2010 | 46 | 2020 | 39 | 2030 | 31 | 2040 | 24 |
2001 | 59 | 2011 | 51 | 2021 | 44 | 2031 | 36 | 2041 | 29 |
2002 | 4 | 57 | 2022 | 49 | 2032 | 42 | 2042 | 34 | |
2003 | 9 | 2013 | 2 | 2023 | 54 | 2033 | 47 | 2043 | 39 |
2004 | 15 | 2014 | 7 | 2024 | 0 | 2034 | 52 | 2044 | 45 |
2005 | 20 | 2015 | 12 | 2025 | 5 | 2035 | 57 | 2045 | 50 |
2006 | 25 | 2016 | 18 | 2026 | 10 | 2036 | 3 | 2046 | 55 |
2007 | 30 | 2017 | 23 | 2027 | 15 | 2037 | 8 | 2047 | 0 |
2008 | 36 | 2018 | 28 | 2028 | 21 | 2038 | 13 | 2048 | 6 |
2009 | 41 | 2019 | 33 | 2029 | 26 | 2039 | 18 | 2049 | 11 |
1月(用上一年数) | 6 | 7月 | 2 |
2月(用上一年数) | 37 | 8月 | 33 |
3月 | 0 | 9月 | 4 |
4月 | 31 | 10月 | 34 |
5月 | 1 | 11月 | 5 |
6月 | 32 | 12月 | 35 |
日柱公式:日干支序数=年数+月数+日期(和大于60,则减60。1月、2月用上一年的年数)
注意:1月和2月的各天要用上一年的年数,即未到3月用上一年数。例如求2015年2月28日干支,未到3月,要用2014年数=7,不可用2015年数。年数适用范围:此年3月-下年2月。
命理师最好将月数表完全背熟,对于盲派命理师,则最好将百年的年数表也背熟,干支表序数也应背熟。
例:求1987年7月18日,1997年1月15日,2008年8月8日,2015年11月21日,2016年10月1日干支?
解:查表得知
1987年7月18日=1987年数+7月数+18日=45+2+18=65-60=5=戊辰
2008年8月8日=2008年数+8月数+8日=36+33+8=77-60=17=庚辰
2015年11月21日=2015年数+11月数+21日=12+5+21=38=辛丑