日干支究竟如何與公曆日期相互轉換?
如題。求簡潔的回答啊。謝謝各位!
雖然人們歷來都想找一個類似日上起時那樣的簡潔方法來推算日干支,但據我所知,由於月與日之間的規律性並不十分好(閏月),現在應該沒有一種簡約的方法可以推算。記得邵偉華的周易預測學後面附了他自己推的一種方法,寫了好幾頁紙,當時沒仔細看,如果題主有興趣可以找來看看。不過個人覺得這個問題太麻煩,應用的話硬記得不償失,反正現在隨便一查就有了。
我是不是又可以臭顯擺一下了?其實我以前在網上發現了一個根據公曆計算日干支的公式,還能推算時干支。題主看完了自己試試~粘貼如下:
根據公曆日期計算當日干支:
一、口訣:
乘五除四九加日,
雙月間隔三十天。
一二自加整少一,
三五七八十尾前。
二、舉例說明:
例一:1996年1月16日
(96×5+96÷4+9+16)÷60=8餘49,49即為六十甲子序數。9對應天干壬,49除12餘1對應地支子,對應干支為「壬子」。
例二:1997年2月16日
(97×5+97÷4+9+16+30+2)÷60=9餘26,26即為六十甲子序數。6對應天干己,26除12餘2對應地支丑,對應干支為「己丑」。
例三:1998年3月16日
(98×5+98÷4+9+16)÷60=8餘59,對應干支為「壬戌」。
例四:1999年4月16日
(99×5+99÷4+9+16+30+1)÷60=9餘35,對應干支為「戊戌」。
例五:2000年7月16日
(100×5+100÷4+9+16+2)÷60=9餘12,對應干支為「乙亥」。
例六:2001年10月16日
(101×5+101÷4+9+16+4+30)÷60=9餘49,對應干支為「壬子」。
三、註解:
第三句中的「整少一」,為能被4整除之年一二月份比其他三年都要少加一;第四句反映的是大月規律,即8月加3、11月加5,依此類推)。
時柱干支推演算法(公曆):
子時的干支確定,這個問題現在有不同的觀點,有人將0點以前的天干取頭一天的,
稱為「夜子時」;而0點以後的天干取第二天的,稱為「早子時」。
日干支數除以五,取餘減一乘十二;
A=日干支數÷5=〔取餘數(整除取5)-1〕×12
時數加一除以二,取商加一得時柱。
B=〔時數(0~23)+1〕÷2=取商數+1
ab=A+B;b即為天干序號;ab÷12n=c,c即為地支序號。八字裡面,日干支是最核心的也是最難算的。
下面這個方法可以滿足你,計算日干只需一個公式,計算日支只需要區分一下月份的奇偶。
根據公曆日期計算當日干支(詳解)
該方法同時把年干支的推算方法也寫出來了。
再根據年上起月,日上起時的口訣,八字很容易推算出來。
比網上那些亂七八糟的方法簡潔得多,非常適合寫代碼。
隨便找一個對應的,然後一天天累加慢慢推。
推薦閱讀: