干支紀年演算法
㈠ 干支紀年法如何計算
1、根據是公元元年是辛酉年,辛8酉10,乾的周期為10支的周期為12。
天干按甲到癸的順序為1~10,地支的順序按子到亥的順序為1~12。
2、公元前的演算法:
年干=8-N(N﹤8)或8-N+10(N≧8),N=年號除以10的余數=年號個位數。
年支=10-N(N<10)或10-N+12(N≧10),N=年號除以12的余數。
例:求公元前22年和公元前159年的干支?
解:前22的年干=8-2=6=己,前159年的年干=8-9+10=9=壬;
前22的年支=10-10+12=12=亥,前159年的年支=10-3=7=午;
故前22年的干支為己亥,前159年的干支為壬午。
紀年的起點:
東漢初期,光武帝劉秀時期民間已使用干支紀年。延至漢章帝元和二年(公元85年)干支紀年被以政府命令的形式頒行於全國。爾後各朝各代,實行年號紀年之外,並以干支法作為紀年,沿行不廢。
中國先秦素有「改正朔」的傳統,即皇帝以頒令的形式決定歲首。
先秦三代有改正朔之傳統,夏以建寅為正,商以建丑為正,周以建子為正,秦統一天下後,繼承此傳統,以建亥(十月)為始。
㈡ 求天乾地支紀年紀月紀日的換算公式。
▲天乾地支紀年與公歷的近似換算
從已知的公歷年份計算干支紀年:年份數減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.癸亥
排月柱
月柱的天乾和地支排法在各類命書中都有這樣的口訣:
甲己之年丙作首,
乙庚之歲戊為頭,
丙辛歲首尋庚起,
丁壬壬位順行流,
若言戊癸何方發,
甲寅之上好追求。
這 歌訣也稱《五虎遁年上起月歌》。至於何為「五虎遁」這里就不展開講了,有興趣的朋友找到相關命理書看一下便知。這歌訣的意思是:年干逢甲或己,則該年的月 份天乾地支就以正月是丙寅排起,依次為二月丁卯,三月戊辰,四月己已……這樣依次排到十二月;年干是乙、庚的則以戊寅為一月起始;年干是丙辛的,則以庚寅 起始;年干為丁、壬的則以壬寅為一月;年干為戊、癸則以甲寅起為一月。其餘月份均可順序推得。注意:論月份干支,地支始終是不變的,即一月為寅、二月為 卯、三月為辰、四月為已、五月為午、六月為未、七月為申、八月為酉、九月為戌,十月為亥,十一月為子,十二月為丑。這是永遠不變的。變的只是天干,隨著年 柱的天干之變而變。
這里,我們已看到了十二地支的兩個作用:一是用來表示年份,它與生肖相對應:子為鼠、丑為牛、寅為虎、卯為兔、辰為龍、已為蛇、午為馬、未為羊、申為猴、酉為雞、戌為狗、亥為豬。二是用來表示月份,如前所說。
流星趕月排日柱
推算日干支,可以按公歷和農歷兩種方法推算。
⑴ 農歷日干支推算口訣:
大小月卦記心間,正一干支起根源。
大後干同地支沖,小後干支退一天。
初一十三二十五,支同隔干一位算。
推算方法:「大小月卦記心間,正一干支起根源。」農歷的大月為30天小月為29天,固定不變。要推農歷曰干支,先要按《農歷大小月卦口訣》將推算之年編上兩卦,以便在推算日千支時運。除此之外,還要記住農歷正月初一日的干支,因為它是推算一年逐日的基礎。「大後干同地支沖,小後干支退一天。」農歷天干與地支組合,天干循環2.5次。根據這一規律,知道某月初一日干支,如果這個月是小月則應在干同支沖的情況下,干支各減一位,則是小月後下月初一日干支。如本月初一干支為己卯,這個月是大月,下月初一干支為己酉。如果這個月是小月,則下月初一干支應在己酉退一位後確定,即為戊申日。「初一十三二十五,支同干隔一位算。」此兩句是在確定某月初一干支後,將這個月分成三個階段,即初一至十二,十三至二十四二十五以後。初一、十三、二十五日在干支上也是有規律的。知道初一干支,只要將該日天干隔一位順推,而地支不變。同理,知道十三日干支,支同干隔一位,也知道二十五日的干支。如初一日干支為甲子,則十三日干支為丙子,二十五日干支為戊子。掌握這個方法,就可以根據所推之日屬於哪一段,便可以很快知道這天的干支了。
⑵公歷日干支推算口訣:
元旦干支為根源,大小二月記心間。
小月干同地支沖,大月上句加一天。
申子辰年年為閏,干同支沖退一天。
余年二月二十八,干同支沖退一天。
月首十三二十五,支同隔干一位算。
推算方法:「元旦干支為根源,大小二月記心間。」推算公歷日干支,首先要記住元旦曰的干支。同時,還要知道大小月及二月的天數。公歷大月為31天,小月為30天,其大小月是固定不變的,唯獨二月有29天和28天之分。因此,要特別注意哪年二月為29天,那年二月為28天。「小月干同地支沖,大月上句加一天。」公歷小月為30天,按農歷大月推算口訣,我們知道本月初一日干支,與下月初一干支則是天干相同地支相沖。公歷大月為31天,在小月乾地相沖的基礎上,干支各加一位數,即是大月後下月一日的干支。「申子辰年年為閏,干同支沖退一天。」經過研究,發現凡地支為申、子、辰的年為公歷閏年,二月為29天。在推算3月1日干支時,可按農歷小月後的日干支推算方法,即在干同地干沖的基礎上,干支各減一位,則為3月丨日干支。「余年二月二十八,干同干沖退二天。」除地干為申子辰年二月29天,其它年二月均為28天。在知道2月1日干支後,按干同支沖規律,干支各減二位便是3月1日的干支。「月首十三二十五,支同隔干一位算。」月首,代表每月第1日。其推法與農歷日乾乾訣後兩句相同。
㈢ 天乾地支萬能計算公式是什麼
干支紀年法簡便演算法公式
10天干:甲乙丙丁戊己庚辛壬癸。
12地支:子丑寅卯辰巳午未申酉戌亥。
天乾地支紀年法計算的萬能公式:
天干計演算法:年減去3再除以10得到的余數對應的天干字就是干。
地支計演算法:年減去3再除以12得到的余數對應的地支字就是支。
1、1900----2100年之年干:年尾數-3。
例:1969年年干=9—3=6,第6位天干就是已。
2012年年干=2-3=9,第9位天干是壬(2不足減就補十成12)。
2、1900----1999年之年支:年尾二位數+1;2000----2099年之年支:年尾二位數+5。
例:1969年年支=69+1=70,去掉60的倍數為10,地支第十位為酉;2012年年支=12+5=17,去掉12餘5,地支第五位是辰;那麼1969年干支就是已酉2012年干支就是壬辰。
3、月干公式,月的地支是固定的如正月起寅之類,只計算月干。
月干=年干數×2+月份。
例:1969年(已酉)年八月(酉月)的天干=6×2+8=20,天干10為周期就去掉10,天干第十位為癸,則此月干支為癸酉。
4、日干支公式:
1900----1999年日干支基數=(年尾二位數+3)×5+55+(年尾二位數-1)/4。
2000----2099年日干支基數=(年尾二位數+7)×5+15+(年尾二位數+19)/4(只用商數,余數不用,數過60就去掉60)。