昨日的日記只是講了西曆和陰曆,還有干支曆尚未談及,因為要處理干支曆的話,還需要有廿四節氣當中的十二節氣。
一如之前的日記提及過,干支月之始是十二節氣,所以就先要有一個表去紀錄十二節氣相應的日期,亦即下圖所顯示一般:
16Please respect copyright.PENANAn4jADdcYJC
之後就可以去處理干支曆的年、月、日。如西曆和陰曆一般,先把我寫這本日記簿的第一日的干支曆打在第2行──甲辰年丁丑月庚辰日。干支年的特色就是一到立春就會換新的一年,否則就會不變。所以,就是先檢查當日的西曆是否立春,如果不是立春,就直接等於上行的年份;否則,即如果當日是立春,就會找尋年份的行數,再將年份的行數+1,得出下一年的年份。像本身是甲辰年,甲子表中在第41行,如果遇到立春那天,就會計算41+1,得出乙巳年。如果+1後=61,就會變回1,得出甲子。
=iferror(if(vlookup($A3,'節氣'!$A:$B,2,false)="立春",index('干支'!$C$1:$C$60,if(match(M2,'干支'!$C$1:$C$60,0)+1=61,1,match(M2,'干支'!$C$1:$C$60,0)+1)),M2),M2)
干支月的話就簡單一點,只要檢查當日的西曆日期有在節氣的列表中出現,就可以直接將上行的年份+1,來得出下一個月份的甲子。
=iferror(if(vlookup($A3,'節氣'!$A:$B,1,false)=$A3,index('干支'!$C$1:$C$60,if(match(N2,'干支'!$C$1:$C$60,0)+1=61,1,match(N2,'干支'!$C$1:$C$60,0)+1))),N2)
干支日就更簡單,直接將上一行的甲子+1,到61變回1,不斷由甲子到癸亥順序循環就可以了。
=index('干支'!$C$1:$C$60,if(match(O2,'干支'!$C$1:$C$60,0)+1=61,1,match(O2,'干支'!$C$1:$C$60,0)+1))
有了干支曆的年、月、日,就可以做最後的組合了。
=M3&"年"&N3&"月"&O3&"日"
16Please respect copyright.PENANAfIgNlBGRQC
英國:
二零二五年二月廿四日十七時
乙巳年正月廿七日酉時
乙巳年戊寅月甲子日癸酉時
香港:
二零二五年二月廿五日一時
乙巳年正月廿八日丑時
乙巳年戊寅月乙丑日丁丑時16Please respect copyright.PENANARdEEF7TtKo
虛度 - 日記簿16Please respect copyright.PENANAJtov2ebNEZ