▲天干地支纪年与公历的近似换算
从已知的公历年份计算干支纪年:年份数减3,除以10的余数是天干,除以12的余数是地支。(公元前的年份则用58-“年份数除以60的余数”后计算)
也可以天干:年份÷10,得到的商不管,看余数,若余数-3得正,则按天干顺序往下数,得数即为天干顺序数,若余数-3为负,则+10,得到的数即为天干数,若余数为3,则为天干的最后一位,即癸。
地支:年份÷12,得到的商不管,看余数,若余数-3得正,则按地支顺序往下数,得数即为地支顺序数。若余数-3为负,则+12,得到的数即为地支顺序数,若余数为3,则为地支的最后一位,即亥。
把天干数和地支数合并起来,即为所求的干支年份。
如:2001年查万年历为辛巳年,算法为:
2001÷10=200……1,1—3=—2,—2+10=8,按天干顺序数到8,甲、乙、丙、丁、戊、己、庚、辛。第8位为辛。
2001÷12=166……9,9—3=6,按地支顺序数到6,子、丑、寅、卯、辰、巳。第6位为巳。
按照以上计算结果,把天干、地支合并起来可知,2001年为辛巳年。
▲干支纪年与格里历的换算
若我们把天干的甲、乙、...、壬、癸编上 0、 ......、8、9 等序号;地支的子、丑、...、戌、亥亦编上 0、1、 ......、10、11 等序号,那么:
从已知的格里历年份计算干支纪年:年份数减4,除以10的余数是天干,除以12的余数是地支。例如:
(1972 - 4)÷ 10 ≡ 8,所以天干是“壬”;
(1972 - 4)÷12 ≡ 0,所以地支是“子”。
附:已知天干地支,如何得到当前是60年中的第几年 (杨霖坤 编程)。
X=天干 Y=地支
if x - y >= 0 then
z = 6x - 5y;
else
z = 6x - 5y + 60;
排出60甲子序列,将自己的虚龄生年放入其中,逆数上行即可找到相对公元年的干支是什么了。或者比照当年或上年的干支,也能找出相应的你所需要的干支来。如你是1987年7月生人,只知道今年是兔年(丁卯)不知道87年是什么干支,
1. 甲子 2.乙丑 3.丙寅 4.丁卯 5.戊辰 6.己巳 7.庚午 8.辛未 9.壬申 10.癸酉
11.甲戌 12.乙亥 13.丙子 14.丁丑 15.戊寅 16.己卯 17.庚辰 18.辛巳 19.壬午 20.癸未
21.甲申 22.乙酉 23.丙戌 24.丁亥 25.戊子 26.己丑 27.庚寅 28.辛卯 29.壬辰 30.癸巳
31.甲午 32.乙未 33.丙申 34.丁酉 35.戊戌 36.己亥 37.庚子 38.辛丑 39.壬寅 40.癸卯
41.甲辰 42.乙巳 43.丙午 44.丁未 45.戊申 46.己酉 47.庚戌 48.辛亥 49.壬子 50.癸丑
51.甲寅 52.乙卯 53.丙辰 54.丁巳 55.戊午 56.己未 57.庚申 58.辛酉 59.壬戌 60.癸亥