天干地支的算法

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 00:18:11
天干地支的算法
xWR#G"ဈQfbO%@ 1ha,1lb1#X u2 ^Uf&_>SտTBU^ogo˕ɟ~{'/M~Ϊ{2Y/jio௷µ b^JL>bn\֖6.U7:h&khu[p Q%6]% :5%dqiq%uT>݇В&:)v **="lPs9%SoͩRPKcY3-JJ5*SSҀXm?R&NMof3-ۘl4N$(}Cb={IdTԃ䐋{$l<_tcǽ$pMFn2t d&7--b}o[sӚ pk.[=.55\[sA;-o1~[??*?ʶD.…pk.55S[{\ eQe1c1Sc?cl{#{\p!5譹О \[sn141%??6??l pnB-\Ho/-\Nk.5qٯi.R5ѿLDբU#u` @= ^MKs҄4ME$ĠJ"}dR@I/1*;!i^OT eXr };6 %[g-ꟷ±aND"kTn?gvSC%Z<-˥ց^!i^^VTH]wk%.",412f;Hf0yv+)v=יZv}}!d/ã˝.wg۪R0\\ʻΩ"e1k;p}Uv8RS^pWRAj)8Sgɰމx]wUrjy13-]¥ nMJ}eY/U.^IjyW/%

天干地支的算法
天干地支的算法

天干地支的算法
首先我们先要明白天干与地支是如何搭配的
天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸
地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥.十天干与十二地支按顺序两两相配,从甲子到癸亥,共六十个组合,即六十甲子.(10与12的最小公倍数是60)
1\x092\x093\x094\x095\x096\x097\x098\x099\x0910\x0911\x0912\x09
甲子\x09乙丑\x09丙寅\x09丁卯\x09戊辰\x09己巳\x09庚午\x09辛未\x09壬申\x09癸酉\x09甲戌\x09乙亥\x09
13\x0914\x0915\x0916\x0917\x0918\x0919\x0920\x0921\x0922\x0923\x0924\x09
丙子\x09丁丑\x09戊寅\x09己卯\x09庚辰\x09辛巳\x09壬午\x09癸未\x09甲申\x09乙酉\x09丙戌\x09丁亥\x09
25\x0926\x0927\x0928\x0929\x0930\x0931\x0932\x0933\x0934\x0935\x0936\x09
戊子\x09己丑\x09庚寅\x09辛卯\x09壬辰\x09癸巳\x09甲午\x09己未\x09丙申\x09丁酉\x09戊戌\x09己亥\x09
37\x0938\x0939\x0940\x0941\x0942\x0943\x0944\x0945\x0946\x0947\x0948\x09
庚子\x09辛丑\x09壬寅\x09癸卯\x09甲辰\x09乙巳\x09丙午\x09丁未\x09戊申\x09己酉\x09庚戌\x09辛亥\x09
49\x0950\x0951\x0952\x0953\x0954\x0955\x0956\x0957\x0958\x0959\x0960\x09
壬子\x09癸丑\x09甲寅\x09乙卯\x09丙辰\x09丁巳\x09戊午\x09己未\x09庚申\x09辛酉\x09壬戌\x09癸亥\x09
 
序号\x091\x092\x093\x094\x09 5\x096\x097\x098\x099\x0910\x09 \x09 \x09
天干\x09甲\x09乙\x09丙\x09丁\x09戊\x09己\x09庚\x09申\x09壬\x09癸\x09 \x09 \x09
序号\x091\x092\x093\x094\x095\x096\x097\x098\x099\x0910\x0911\x0912\x09
地支\x09子\x09丑\x09寅\x09卯\x09辰\x09巳\x09午\x09未\x09申\x09酉\x09戌\x09亥\x09
1894年是甲午年,那么1895年的天干是乙,依此类推,1900年的天干就是庚;同样,1894年的地支是午,1900年的地支就是子;所以1900年是庚子年.如果大家还想到1901年八国联军胁迫清政府签订了《辛丑条约》,就是1901年是辛丑年,那么天干与地支的序号都往前推一下,也可以推出来1900年是庚子年.(《辛丑条约》中的所涉及的赔款,因为是针对1900年(庚子年)的义和团运动而规定,所以也叫庚子赔款.)
如果没有告诉你相邻的某个年份是什么年,那么又怎样推算呢?比如,1861年用干支纪年应是?1984年用干支纪年应是?
这里有一个计算的公式:N=X-3-60m(0≦N﹤60,m是一个自然数)
N是60个干支的序号,比如N=1时就是甲子,X就是公元某某年.
那么按照这个公式,1861年的序号就是:1860-3-60m,那么就取m=29,这样N=58,如果取m=30的话,N=-2,这时就要加60,也就是说0≦N﹤60,如果N=0,那么就是第60个干支.现在知道与1861年对应干支是第58个,但是如果没有上面那个表格可供查阅,怎么办呢?我们知道天干是10个,地支是12个,10天干与12地支按顺序两两相配,那么第58号对应的天干的序号应是58÷10的余数,余数是8,第八个天干是申;同样,第58号对应的地支的序号是58÷12的余数,余数是10,第十个地支是酉,所以1861年是农历辛酉年.
所以天干的序号A=mod(N,10),地支的序号B= mod(N,12)
(大家就是对于m应该取多少,不用去想,很简单,就像小学生列除法算式一样,N-3那个数除以60,所得的商数就是m,余数就是N)
注意:这里的公式只适用于公元后的年份
公元前的计算公式应是N=X-2-60m,(因为公元前1年后就是公元元年也就是公元1年,没有公元0年),(X就是一个负数了,m也取负数)
不过不知道这个公式是否准确.前面的公式N=X-3-60m来源于《简明天文学教程》 作 者:余明 ;出版社:科学出版社.