自作カレンダー
スマホを使うと手元で暦を見たりスケジュール管理ができるため、壁掛けカレンダーの必要性は以前ほど無くなってきている。しかし、机に向かって座っていて、目の前の壁にこよみが貼ってあると、それはそれで便利に違いない。スマホも簡単とはいえ、操作しなければ、その画面は表示されない。
ということで、限られたシチュエーションで、その状況に合った暦の存在感は依然としてあると思う。私の場合、その限られた場面とは、次のケースだと思う。
・【机の前の壁面】比較的近距離、暦そのもので充分で写真などは不要。
・【二十四節気や雑節を知りたい】季節の節目としての二十四節気と雑節は、生活の中でそれなりの存在感があり、わざわざ調べなくても、暦に載っているとありがたい。
この程度のことであれば、ブックマークしておけば、いつでも見れるではないかと思われるだろうが、そこは無精な性格からして楽をしたいため、見上げるだけで知りたいのだ。
そんな事情から、毎年、自前の暦を制作して、印刷し、壁に貼り付けていたのだが、これが意外と面倒、せっかくやるなら少しはデザインを考えてと、色々と試行錯誤しているが、そうなるとエクセルのような便利なツールでは無理がある。Word でも計算機能があるため、使用可能とは思うが、結局、使うという確信はないが色塗りのグラデーションまで表現可能な線画作成ツールが可用性の観点から選択肢に入る。私の場合、Inkskape を使ってきた。
カレンダーを自動制作できないか
この大変な手間を何とか省略できないものかと考えた末、HTML / CSS / javascript の連携で何とかなるのではないかと思い至った。デザインは HTML / CSS で、データは javascript でジェネレートという役割分担だ。残るはそのロジック、問題になるのは次の点
・【国民の祝日】法律で定められているが一部は「春分の日」、「秋分の日」として具体的に日付を規定していない。
・【うるう年】決まったルールがある
・【二十四節気・雑節】天文現象とリンクしているため天体物理学に行きつく
国民の祝日については、「国民の祝日に関する法律」で規定されている。これは javascript でプログラムとして基本的には再現可能だ。しかし、次の留意事項がある。
・【春分の日・秋分の日】これは二十四節気・雑節と同様に国立天文台の発表にゆだねられている。
・【天皇誕生日】和暦が変われば自動的に変わるもの。そのときにプログラム修正が必要(テーブルの値の変更が必要)
・【時限立法による一時的変更】例えば東京オリンピック、いくつかの祝日が移動された。これはプログラムの部分的な停止とテーブルへの登録が必要)
・【祝日の改廃】プログラムの部分的な修正とテーブルへの登録で対応できる)
春分の日・秋分の日・二十四節気・雑節については、元々が天文の動きとリンクしたものなので、突き詰めていくと天文物理学の世界に行き当たる。さすがにそこまで行くと、暦を作るためという範疇を思い切り飛び出してしまう。そこで、国立天文台が本格的な計算の末に割り出した日付を官報で告示しているため、それをテーブルに取り込んで使用することとした。ただし、官報には2年分しか掲載されていないため、国立天文台の暦計算室がホームページに公開している「長期版」を使用して算出した結果をプログラムのテーブルに設定している。これは、官報掲載レベルの公式なものではないものの、現時点での精密な軌道計算の結果という位置づけと理解している。
ということで、暦を自動制作する目途は立ったが、次の事項が制約(要注意)事項となる。
・「国民の祝日に関する法律」の動向に注意し、変更があればプログラムテーブルの内容更新、またはプログラムの修正を行う必要がある。
・国立天文台暦計算室の「長期版」から 2032 年までのデータをテーブルに登録しているので、2030 年になったら、それ以降を登録するとともに、2027 年までの分を削除しなければならない。
・毎年、2月初旬の官報に掲載される春分の日・秋分の日・二十四節気・雑節の日付を確認し、プログラムテーブルの値と相違していれば更新する。
ここまで整理して、これはいけると確信した。情報の正確性を担保するために、年ごとに春分の日・秋分の日・二十四節気・雑節を登録したか否かをプログラム内のテーブルに登録し、登録されていない場合は、「簡易こよみ」として表示したうえで、国民の祝日・二十四節気・雑節を表示しないようにした。国民の祝日全体を表示しないというのば痛手だが縮退版という位置づけだ。
ディスプレイ表示と印刷
ディスプレイ表示ついては、このホームページの TOP ページから「永年カレンダー」を表示してみていただきたい。また。「for PC ONLY」のところをクリックすると仕様としていろいろと記載している。特にこだわったのはフォントで、「Tempus Sans ITC」というフォントが見易さとデザイン性の両立という観点から気に入っている。
この暦は印刷することが重要な目的で、そのためのデザインはディスプレイ表示とは異なるわけで、それをどうするか考えた末、CSS で両方のデザインを実現させることとした。具体的には @media による CSS の使い分けがポイントになる。
印刷の場合は、壁掛けが前提なので、デザインは二の次として徹底して視認性にこだわることとした。フォントは Windows10 標準搭載の「BIZ UD ゴシック」とした。細部まで視認性にこだわった、見やすい文字だと思う。