FC2ブログ
六曜と旧暦
六曜と旧暦
頭の体操でエクセルの関数を使いいろんなことを計算したりしているのだが、この時期よく見かけるのが「自作のカレンダーに六曜を表示させる」みたいな質問があるが簡単にはできない。もともと六曜は旧暦(俗にいう太陰暦)に基づいて順に決まっている。「月と日を足したものを6で割った余り」が「0」なら「大安」、「1」なら赤口、順に先勝、友引、先負、仏滅と続く。これを表示させる関数はIFとMODのコンビネーションで簡単に作れる。これが「簡単」にできると勘違いするところ。まずは旧暦を理解することが難儀である。もともと月の満ち欠けを利用して暦を作るのだから月が1サイクル終わるのに29.53日かかる。ということは29.53×12=354.36日/年であり、1年で11日も違ってくる。数年後には12月が夏の暑い時期にもなりかねない。そこで季節の帳尻合わせに閏月を足してやらなければならない。それが約3年置きと言われれば納得するでしょう。上の画像のように4月30日の次にまた閏4月1日がくる。全く「干支」月とか言いようはなかったのだろうか。馬の月とか猿の月とか。また、2月30日とかいう日がある。エクセルでは3月1日とか3月2日という表示になるから厄介である。MSがエクセル関数で「MOONMONTH」みたいなものを作ってくれるとありがたい。まだまだ問題はある。29日と30日は月の周期を計算しないと1ヶ月が決まらない。それに閏月を作るのにも春分、夏至、秋分、冬至などの「中気」を含まない月にしなければならない。この時点で関数が思いつかないし、簡単ではないことに気づくでしょう。なので解決策として旧暦を教えてくれるサイト(http://koyomi8.com/)の手助けで旧暦カレンダーを平成50年まで作ることにした。それに現在の日付を対応させて新暦(現在の太陽暦)と対応する六曜だけを表にした。これがあればINDEXとMATCH関数で簡単に表示できるでしょう。暦サイトには感謝しております。六曜データはダウンロードしてご自由にお使いください。


スポンサーサイト



未分類 | 16:45:50 | トラックバック(0) | コメント(0)