それあってますか

現在のところ右のバーに表示されているカレンダーを、Movable Type標準のものから、月送りが出来るカレンダーへと変更してみました。

といってもそんなプログラムは自分で組めるはずもなく、小粋空間様にお世話になりました。利用させていただいたプログラムなどは、「Ajax 月送りカレンダー」というエントリーで取り上げられているもの。設置はいたって簡単。記述されている説明通りに手順を踏めば、特に問題なく設置は完了しました。見た目をテンプレートとCSSを少しいじって変更した以外は、特に苦労という苦労もなく設置することが出来ました。

このカレンダーは休日も表示してくれる優れもの。振替休日にも対応しているそうです。「dayChecker.js」というプログラム(?)をもとに休日を判定して、その結果をカレンダー上に表示してくれます。日本だけでなく、イギリスの休日表示用のプログラムも置かれてありました。

さてこのプログラム、とても便利なのですが、困ったことに私が住んでいるのはドイツ。従って用意されたプログラムではドイツとは異なる休日が表示されてしまいます。最初はこのプログラムを設置せず、休日表示のないまま利用しようかと思いました。プログラムがないものはどうしようもないので。しかしそれでは味気なく寂しいので、何とかプログラムを修正した上で利用できないかと考えました。それでプログラムの中身を拝見することに。

「見て分かるかなー」と思ったものの、固定の休日、例えば1月1日などはそれをそのまま指定しているみたいだし、何月の第何週の何曜日といったような移動型の休日は、最初の週のその曜日をデータとして得るように指定して、後で数字を7の倍数で足していって日を指定しているように思えました。例えば3週目の水曜日なら、最初の週の水曜日から14日後の水曜日、などといったようにです。

で、試行錯誤しながらプログラムをいじって何とか完成。現在表示されているものは、ドイツ連邦共和国バイエルン自由州のものです。バイエルンのものと書いたのは、ドイツは週によって祝日が異なるからです。

完成とは書いていますが、見栄えだけ完成しただけで、実はプログラムとしては全く完成していません。というのも、ドイツの移動祝日は「何月の第何週目の何曜日」といったものではなく、殆どの場合、イースターの日曜日を基準として、それから何日後などといったように定められているものが多いのです。元のプログラムを見ただけでは、それをどうやって指定するのかが分かりませんでした。また「休日表示カレンダースクリプト(イギリス版)」というエントリーで、イギリスの休日用のスクリプトについて小粋空間様も、イースター関連の休日については計算が複雑なため、日付を直接指定しておられると書かれています。したがって、私も今回はそのような方法にさせていただきました。

ドイツの祝日はいつなのかというデータは、最初Wikipediaの「ドイツの祝日」という項目を参考にしていたのですが、ここでちょっと問題が。多くの休日はこの項目では、「何月の第何週目の何曜日」と記されているのですが、そうすると自分の持っている手帳と合わないのです。そこでドイツ語版Wikipediaの同じ項目「Feiertage in Deutschland」に飛ぶと、日本語版の項目のデータが間違っていることに気がつきます。

最近は調べるときにWikipediaという事が多いのですが、過信してはならないことが分かりました。ちなみに「ドイツ」という項目にある「祝祭日と年中行事」というところに記されている祝祭日は、ドイツ語版Wikipediaとほぼ同じ表記になっています。細かくは見ていないので、もしかしたら間違いがあるのかもしれません・・・

Similar Posts:

Comments are closed.