mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

カレンダー作成!

[ プログラミング ] [ MySQL, Rails, Ruby, カレンダー ]

こんばんは。

六曜ってご存知ですか? 「先勝、友引、先負、仏滅、大安、赤口」というやつです。

これらを表示できるカレンダーを自分で作成してみました。

単に数字を並べるだけのカレンダーは簡単に作成できるのですが、六曜が絡むと非常に面倒です。

なぜなら、旧暦(日本なら、天保暦という暦)を計算しないとからです。

調査してみると、 QRSAMP「旧暦計算サンプルスクリプト の awk のロジックを使用させてもらうのが一番手っ取り早いことが判明!

このロジックでは旧暦、六曜、二十四節気等が計算できます。

ここでは詳しい説明はしません。(複雑すぎてまとめるのが難しすぎる) 詳しいことは上記のソース+説明書をご参照ください。

また、用語の意味も調べればわかると思います。

当方は他のサイトも参考にしながら、旧暦・六曜・二十四節気の他に毎日の干支・雑節・節句・休日・月齢も計算しました。

作成した環境は Ruby + MySQL です。 そして、作成したデータを Ruby on Rails で参照できるようにしました。 (カレンダー・休日一覧・二十四節気一覧・雑節一覧・節句一覧)

ぜひご利用ください → こちら ※参照可能なデータは西暦1900年~2099年です。 ※休日は現時点の「国民の祝日に関する法律」によるものです。 ※様々なカレンダーサイトと比較して相違がないことは確認済みですが、おかしなところがあれば教えてください。

このカレンダーを作成するにあたり勉強になったこと。

  • 万国共通の基準日からの経過日数(ユリウス通日)があること。
  • 旧暦は二十牛節気の春分が基準であること。
  • 二十四節気は太陽の黄経で決まること。
  • 旧暦の一日は太陽の黄経と月の黄経で決まること。
  • 旧暦には閏月(同じ月が2月続く)が数年に1回あること。
  • 六曜は旧暦の月日によって決まること。
  • 現在の暦(グレゴリオ暦)の閏年の計算根拠。

等々。

非常におもしろかったです。

これをきっかけに、各地の日の出・日の入も計算してみたくなりました。 と思ったけど、日々変わる日の出の方向やその方向にある山の高さなんかは到底個人で計算できるレベルではないのであきらめ・・・ (国立天文台におまかせ)

以上。

Comments