今日が祝日だったなんて自作アプリに祝日を表示するカレンダー機能を追加してみました

働いていない私は時間や曜日に囚われない生活をおくっています。

働いていたころは、週末はまだまだ先だとか、今月は祝日が無いから嫌だななどとカレンダーを毎日のように見ていました。仕事上でもプロジェクトのスケジュール管理などにカレンダーは欠かせないものでした。

しかし今となっては日付や曜日はあまり重要ではないため、カレンダーを見る習慣が無くなり、その結果、失敗してしまう事もあります。今日も失敗してしまいました。

今日が祝日だったなんて

今日は朝から頭が痛かったので注意力が無かったんだと思います。近所のスーパーでお1人様1個限りの特売品を買うために妻と出かけたついでにお金をおろしてしまいました。

まだ手持ちのお金もあるのに、どうしても今日必要だというわけでもないのに、108円の手数料を払ってATMでお金をおろしてしまいました。

今日は「勤労感謝の日」だったんです。働いていない私にとって最も縁遠い祝日にATMに入り、頭が痛いからと「はいはい」と不注意にボタンを押し続けた結果、手数料が発生してしまいました。

もし、カレンダーを見ていれば、もっと注意しながらATMを操作していれば防げた手数料です。

たかが108円ですがもったいない。

祝日の情報はグーグルカレンダーから取得できた

できるだけ同じ間違いをしたく無いので、毎日起動している自作のアプリにカレンダー機能を追加することにしました。

そうすれば絶対にカレンダーを目にします。システム日付を取得してその前後何日かを表示し、土日に色を付け目立たせるまでは問題なかったのですが、祝日の情報をどこから取得するかという問題で行き詰ってしまいました。

祝日は毎年ずれる可能性があるものもありますし、土日と重なって振り替えられるものもあります。そういった祝日を全てプログラミングするのは無理がありますから、どこかから祝日データを取得するという方法をとった方が確実です。

無料で祝日データを提供してくれるところがないかと調べていくとグールカレンダーの設定画面で「日本の祝日」を開くと「iCal形式の公開URL」というURLからiCalファイルが取得できる事を知りました。

このファイルからデータを取得するには、「BEGIN:VEVENT」毎に保存領域を確保し、「DTSTART;VALUE=DATE:」から日付を「SUMMARY:」から祝日名を取得できるので保存しておけば、カレンダーに祝日を表示するぐらいは可能になるようです。

早速、このファイルを定期的にダウンロードして活用するプログラムを組みました。

これで無駄な手数料を払う失敗が防げるはず?

まあ、何もしないよりは軽減するでしょう。