みなさん連休を楽しんでいますか?4連休って長いようで短いですよね。「毎日が祝日だったらいいのに…」なんて、小学生の頃はよく考えていました。
そんな子供の頃の夢を、テクノロジーの力で形にしてみました。その名も「毎日が祝日カレンダー」です!
このサイトでは世界198の国と地域1の祝日を1つのカレンダーにまとめて表示しています。ぜひサイトを覗いてみてください。カレンダーのほとんどの日が赤く染まっています。
これで毎日がお休み気分…となるかはわかりませんが、世界の祝日をパラパラ眺めているだけでも異文化に触れる面白さがあって、意外と楽しいのでオススメです。
カレンダーを支える技術:date-holidays
このカレンダーの祝日の表示はJavaScriptのdate-holidaysというライブラリで行っています。これは過去の記事「date-holidays という祝日ライブラリが良い意味で狂っていた」でも紹介したもので、世界中の祝日をYAMLで定義している野心的なプロジェクトです。
ただ、このライブラリの素晴らしさにも関わらず協力者が少ない状況で、一部の祝日について不正確だったり最新の法改正に対応できていなかったりします。
私も微力ながら、アルゼンチンやサウジアラビアの祝日についてコントリビュートしていますが、もし海外在住の方や特定の国の祝日に詳しい方がいらっしゃれば、情報の修正や追加にご協力いただけると嬉しいです。
世界の休日・祝日の豆知識
今回のカレンダーを作る中で、いくつか面白い発見があったので紹介します。
①「日曜日=休日」とは限らない
このカレンダーでは、祝日ではない日曜日も赤く表示しています。これは多くの日本人や欧米人にとって自然なことだと思いますが、世界に目を向けると日曜日が平日(労働日)の国も存在します。
例えばサウジアラビアやバングラデシュでは金曜と土曜が休みの週休2日制を採用しています2。こうした国の人々は日曜だけを特別扱いすることに違和感を覚えるかもしれません。
全世界の人が納得するカレンダーを作るのは意外と難しいですね。
いっそ「世界中の誰かが休んでいる日カレンダー」というコンセプトにして、金・土・日を全部赤く塗りつぶしてしまえば、それはそれで面白いかもしれません。
②独自の暦に紐づく祝日計算が大変すぎる
世界には、私たちが普段使っているグレゴリオ暦とは異なる、独自の暦に基づいて日付が決まる「移動祝日」がたくさんあります。
特に宗教関連の祝日は太陰暦や太陰太陽暦など古い暦に基づいていることが多く、毎年日付が変わります。
例えば、タイなどの上座部仏教国で見られる「ウェーサーカ」(ブッダ生誕、悟り、入滅の日)の祝日は、タイ太陰暦の6月の満月の日に行われます。
こうした移動祝日の日付を将来にわたって正確に計算するには、それぞれの古い暦をプログラムで再現する必要があり、なかなかハードルが高いのが実情です。
date-holidaysライブラリも多くの暦に対応している3のですが、タイ太陰暦の計算ロジックはまだ実装されていません。
また、インドではヒンドゥー教の祝日の基準となる暦が地域ごとに複数4存在するため、インドの祝日すべてに正確に対応しようとするとメチャクチャ大変です。
まとめ
- 全世界の祝日を1つにまとめた「毎日が祝日カレンダー」を作りました。
- このカレンダーはJavaScriptライブラリdate-holidaysで実現していますが、祝日情報の更新や複雑な暦の対応に改善の余地があります。
- 特定の国の祝日事情に詳しかったり、古い暦の知識をお持ちの方がいらっしゃいましたら、date-holidays プロジェクトに情報提供やPull Requestいただけると嬉しいです!