Perpetual Calendarの祝日を2022年用に修正しました。並びに目についたバグを修正しました。
ダウンロードはこちら → Perpetual Calendar
本当はこのカレンダーに六曜を追加したいのですが、ご存知のように六曜は、先勝→友引→先負→仏滅→大安→赤口の順に繰り返しとなります。単純にこの繰り返しなら、エクセルのカレンダーに簡単に追加できるのですが、例えば、1月は先勝で始まるとか、2月は友引で始まるとか、六曜の開始は毎月一日にリセットされる事になっています。このリセットが太陽暦(グレゴリオ歴)の月と一致していれば、エクセルでカレンダーを作ることは簡単なのですが、そうは問屋が卸さず、旧暦(太陰暦)の月が基準となります。
この太陰暦に基づくカレンダーをエクセルで作ることは絶望的に難しいのです。
旧暦では月の満ち欠けの周期(新月から次の新月まで(朔から朔まで))を1ヶ月とします。月の公転周期(地球の周りを一廻りする時間)は、約27.3日ですが、地球自体が太陽の周りを公転しているため、月の朔望の周期は約29.5日となります。暦上1日を半分にする事は出来ませんので、30日の月(大の月)と29日の月(小の月)を作って対応することになります。
太陽暦(グレゴリオ歴)ではニシムクサムライで大の月と小の月は予め決まっていますが、太陰暦では決まっておらず、大の月と小の月が交互に来るとは限らないのです。
地球の公転周期は365.24日です。このため太陽暦では4年に一度閏年(2月が29日になる年)を設ければ対応は簡単です(ただし実際の公転周期は365.24日と、365.25日より少し短いため4年ごとに閏年を設けると足りなくなるため、グレゴリオ歴では100で割り切れるが400で割り切れない年には閏年を設けない)。しかし、太陰暦では、1ヶ月は29.5日のため、1年が12月では、29.5×12で354日となるため、1年ごとに11.24日足りなくなることになります。このままでは暦と季節が合わなくなり、真夏に1月を迎えるような事態に成りかねないので、閏月を挟んで調整(一年を13ヶ月に)する事になります。この閏月を大の月にするか小の月にするかも、又々大問題です。江戸時代には商いは月末払い(晦日払い)が通常で在り、大の月か小の月かの区別は重要で在り、商家では軒先に大か小だけを記した暦を吊るしていたそうです。
しかし、計算では3年に一度閏月を入れても、まだ足りないので、1年に閏月を2回入れないと(1年を14ヶ月!とする)、季節と暦のズレは解消出来なくなる事態が生じる。この閏月を何処に入れるかが大問題で、エクセルでは対応出来ない。
この問題のエクセル関数での対応方法をご存知の方は是非教えて貰いたい。