2011年のカレンダーを買い忘れていた。
ここのところ毎年¥100ショップでシンプルなやつを買っていたのだが、先月は仕事のせいか気持ちに余裕がなかったようで全く頭になかった。
で、いろいろと店を廻ってみたのだが気に入ったものが見つからず(しかも高い!)。
というわけで「無いものは作ってしまえ!(笑)」と思って自作することに。
難しいと思われるかもしれないが、計算式さえあればカレンダーは自作できてしまうのだ。
必要なソフトウェアは「Excel」等の表計算ソフトである。
そして欲しい年のそれぞれの月の1日(例えば1月1日)の曜日を求める計算式。
この計算式、ちゃんとあったりする。
Zellerの公式という計算式で、「z=(y+(y/4)-(y/100)+(y/400)+(2.6m+1.6)+d)mod7」というもの。
この公式で、y=西暦年/m=求めたい月/d=求めたい日(この場合1)をあててやればzの値に0~6が入る。
このzが「0」なら日曜、「1」なら月曜・・・「6」なら土曜となるのだ。
あと「うるう年の計算」が必要になるのだが、これはうるう年の発生条件を調べてExcelのセルに条件式をあてればクリア。
ちなみにうるう年の発生条件は次のとおり。
1)4で割り切れる年
2)100で割り切れる年は、「400で割り切れる年以外」はうるう年ではない
Zellerの公式もうるう年計算もネットで検索すれば引っかかると思うので興味があるかたは調べてみてはいかがだろうか。
実は12ヶ月をA4用紙1枚にプリントするカレンダーのExcelファイルはすでに作っていた。
1ヶ月ごとそれぞれをプリントするカレンダーを作る場合はレイアウトなんかを上手に考えないと実用的なものができないので、そのうちにと思い手を付けてなかった。
まぁ、いいきっかけであったのは間違いない。
作り始めるとある程度しっかりしたものが欲しいわけで、できるだけ自動的に完全なカレンダーが生成できるようにしたいと思うのは私の悪い性格(^o^;)。
で、すごく面倒なのは「春分の日・秋分の日」の自動表示だったりする。
普通の祝日は日付が決まってたり第○月曜日だったりするので割りと簡単に設定できるのだが、春分・秋分の日については地球の自転・公転周期の関係で日付が固定しない。
ちなみに春分・秋分の日の日付については国立天文台のHPに解説がある。
すごく悩んだあげくに、とってもずるい逃げ道でなんとかクリアすることができた。
とりあえずプリントしてみるとやっぱり微妙に間違ってるところがあったのだが、使う分には影響がないところだったので今年はテストプリントのものをそのまま使うことにした。
けっこう思った通りのイイ感じに仕上がったので、来年からは買わずにこれでいこうかと思っている。
気がむいたらもう少しバリエーションを増やしてみようかな。
追記(2011-01-08 14:15:00→2011-01-14 23:55訂正)
作成したカレンダープリントファイル(xls型式)のA4用紙対応版を右サイドバー【フリーダウンロード】よりダウンロードできるようにしました。
ほぼ確実にセル幅やセル高さなどの調整や好みのフォントへの変更が必要かと思われるので、ご自分のPC環境に合わせて調整された上でお使いくださいませ。
今のところバグは見当たらないようですが、思いつきで式を入力したりしてますので間違いがありました場合はご容赦を。
追追記&訂正(2011-01-23 23:45:00→2011-02-04 16:15訂正)
フリーダウンロード用のカレンダーファイルについて、プリンタ側の縮尺設定でA4の大きさに設定をしていたところ、ダウンロードされたファイルの縮尺率が100%に戻ってしまう場合があることがわかりました。
このため、ダウンロード元のファイルをExcelのページ設定の方で縮尺率を変更したものに替えましたが、この場合にプリンタ側の縮尺設定も同時に71%に変わってしまう場合があります。
よって全てのタブの縮尺率を100%で使用できるようにデフォルトA4対応の設定に作り替えました。
これまでのファイルでうまくいかなかった方は新しいファイルをお試しくださいませ。
なお、セルの設定はお使いのPC環境により変わる場合がありますので必ず確認されてください。
バグレポートはコメントへの書き込みでお願いいたします。
追追追記&訂正(2011-01-23 23:45:00→2011-02-04 16:15→2012-12-04 23:20:00訂正)
若干のバグを発見しましたので修正をかけ、さらにその年の干支(十干十二支)表示の対応をしました。
干支は1ヶ月ごとのタブに表示するようになっています。