Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

土用の丑の日

$
0
0
毎年、土用の丑の日が近づくと、どうやって計算して求めようか考えていた。

いきなり土用の丑の日を求めるのは面倒なので、土用入、土用明、の期間を求めて、その間の丑の日を求めることとする。

土用ってのは、春分点から計算して求めてしまってよいのかなと考えてみる。

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))

なんかめんどくさいが、これで一の丑の日にちが求まる。

長ったらしい式になっちまったな。



かきかけ

Viewing all articles
Browse latest Browse all 5376

Trending Articles