毎年、土用の丑の日が近づくと、どうやって計算して求めようか考えていた。
いきなり土用の丑の日を求めるのは面倒なので、土用入、土用明、の期間を求めて、その間の丑の日を求めることとする。
土用ってのは、春分点から計算して求めてしまってよいのかなと考えてみる。
Excelで春分の日は4月x日のxを求める場合、仮にA1セルに西暦が入力されているとすると、
=INT(20.8431+0.242194*(A1-1980))-INT((A1-1980)/4)
の様に求めることができる。
但し、この式が常に正しい値を示すかはここでは考えないものとする。
この値は、19, 20, 21のいずれかを示すことでしょう。
つまり、春分の日は3月19日、20日、21日のいずれかであるということです。
さて、土用入や土用明は、春分の日を3月x日とすると、
春分の日=3月x日
土用入=7月(x-1)日
土用明=8月(x-14)日
の様に求めることとする。
先にも言ったとおり、これが常に正しいかは、ここでは考えない。
では、Excelのシリアル値から子丑寅卯辰巳午未申酉戌亥を求めには、
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(DATE(年,月,日)+8,12)+1,1)
という計算でできる。
つまり、シリアル値に8を加えて、12で割るという
=MOD(DATE(年,月,日)+8,12)
の式が0=子、1=丑、…、11=亥
ということ。
一の丑は、7月中に必ず1回はあるので、先の式を使って求めてみる。
=IF(MOD(DATE(年,月,日)+8,12)<2,INT(20.8431+0.242194*(年-1980))-INT((年-1980)/4)-MOD(DATE(年,月,日)+8,12),INT(20.8431+0.242194*(年-1980))-INT((年-1980)/4)+12-MOD(DATE(年,月,日)+8,12))
なんかめんどくさいが、これで一の丑の日にちが求まる。
長ったらしい式になっちまったな。
かきかけ
いきなり土用の丑の日を求めるのは面倒なので、土用入、土用明、の期間を求めて、その間の丑の日を求めることとする。
土用ってのは、春分点から計算して求めてしまってよいのかなと考えてみる。
Excelで春分の日は4月x日のxを求める場合、仮にA1セルに西暦が入力されているとすると、
=INT(20.8431+0.242194*(A1-1980))-INT((A1-1980)/4)
の様に求めることができる。
但し、この式が常に正しい値を示すかはここでは考えないものとする。
この値は、19, 20, 21のいずれかを示すことでしょう。
つまり、春分の日は3月19日、20日、21日のいずれかであるということです。
さて、土用入や土用明は、春分の日を3月x日とすると、
春分の日=3月x日
土用入=7月(x-1)日
土用明=8月(x-14)日
の様に求めることとする。
先にも言ったとおり、これが常に正しいかは、ここでは考えない。
では、Excelのシリアル値から子丑寅卯辰巳午未申酉戌亥を求めには、
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(DATE(年,月,日)+8,12)+1,1)
という計算でできる。
つまり、シリアル値に8を加えて、12で割るという
=MOD(DATE(年,月,日)+8,12)
の式が0=子、1=丑、…、11=亥
ということ。
一の丑は、7月中に必ず1回はあるので、先の式を使って求めてみる。
=IF(MOD(DATE(年,月,日)+8,12)<2,INT(20.8431+0.242194*(年-1980))-INT((年-1980)/4)-MOD(DATE(年,月,日)+8,12),INT(20.8431+0.242194*(年-1980))-INT((年-1980)/4)+12-MOD(DATE(年,月,日)+8,12))
なんかめんどくさいが、これで一の丑の日にちが求まる。
長ったらしい式になっちまったな。
かきかけ