最後要處理的就是干支曆的時辰。時辰的地支就是陰曆的地支,完全相同,所以問題不大,大問題的在於天干。
時柱的天干,是可以借助日柱的天干來計算。甲子日的第一個時辰,就是甲子時,完成十二個時辰後;第二天乙丑日就以丙子時起;第三天丙寅日以戊子時起;第四天丁卯日以庚子時起;第五天戊辰日以壬子時起,最後就以癸亥時完結。
到第六天己巳日又重新以甲子時起;庚午日如乙丑日以丙子時起;辛未日如丙寅日以戊子時起;壬申日如丁卯日以庚子時起;癸酉日如戊辰日以壬子時起,以癸亥時作結。之後甲戌日又以甲子時起。
由此,我們可以看見時柱每五日會重覆一次,這很正常,因為一天十二個時辰,5X12=60,而干支也是有六十個。所以,甲日和己日的時柱相同,以第一個甲子時起;乙日和庚日的時柱相同,以第一三個丙子時起;丙日和辛日的時柱相同,以第二十五個戊子時起;丁日和壬日的時柱相同,以第三十七個庚子時起;戊日和癸日的時柱相同,以第四十九個壬子時起。
因此,就要知道日柱的天干是排第幾,所以就會使用到MOD()這個得出餘數的formula來求天干的行數。因為根據上面的解釋,每五日時柱會重覆一次,所以MOD()的第一個數是被除數,逗號後的數就是除數,除數就是5。而如果是戊日和癸日的話,排第五和十,餘數會是0,所以就加了一個IF(),處理如果MOD()之後等於0的話,就出5,否則就照出餘數。
得到餘數,就要了解,結果是1的話,即甲或己日,我要的時柱就是在1-12的範圍之內;2的話,乙或庚日,時柱在13-24之內;3的話,丙或辛日,時柱在25-36內;4的話,丁或壬日,時柱在37-48內;0的話,會變5,戊或癸日,時柱在49-60內。所以就以MOD()所得的結果減1後再乘12,之後加陰曆時辰在地支中排行的數字。
如今日香港時間丁卯日,丁在天干中排第4,除5後的餘數亦是4,減1得3,乘12得36,陰曆中所得的時辰為丑時,在地支中排行第二,36+2=38。在干支中排行第三十八的就是辛丑。
=index('干支'!$C$1:$C$60,(if(mod(match(left(right(B12,3),1),'干支'!$A$1:$A$10,0),5)=0,5,mod(match(left(right(B12,3),1),'干支'!$A$1:$A$10,0),5))-1)*12+match(VLOOKUP($B$1,'干支'!$E:$I,5,false),'干支'!$B$1:$B$12,0))&"時"
至此,便完成了這個計算日曆的Google Sheet了。
英國:
二零二五年二月廿六日十七時
乙巳年正月廿九日酉時
乙巳年戊寅月丙寅日丁酉時
18Please respect copyright.PENANARcI1Ygud3d
香港:
二零二五年二月廿七日一時
乙巳年正月三十日丑時
乙巳年戊寅月丁卯日辛丑時
ns 15.158.61.18da2