blog日本の祝日を取得できるDartライブラリのholiday_jp-dartを作りました2023-01-21by@wapa5pow業務で銀行の営業日を取得する必要があったのでどのように実装するか検討していました。銀行の営業日はこちらを解釈すると以下の定義です。土・日・祝日(振替休日含む)と12月31日~1月3日を除いたものが銀行の営業日Dartでサーバサイドを実装しているので祝日を取得できるライブラリを探すとnholiday_jpが見つかりました。他の言語だと祝日はholiday_jpのYAMLのデータセットをベースに以下のシンプルな機能を実装しているライブラリがあります(たとえばgoはこちらです)。特定の日の祝日を取得する特定の日が祝日かどうか判定する2つの日の間の祝日をすべて取得するGoでは、データセットを辞書の変数としてコードに変換し、それに対して年月日がマッチするかどうか判定して祝日を取得しているシンプルなものでした。これならすぐ実装できそうだったので実装してpub.devへholiday_jpのパッケージとして出しました。作れたのですが工夫したところがあるので紹介します。ActionsのCIで毎日確認するデータセットは随時更新されるので、追従していないとライブラリが新しい祝日に追従できません。毎日CIでチェックしてちゃんと最新かどうかを以下のようにバッチとして出しています。他のライブラリに依存しないようにした最初は年月日に整形するところでintlに依存していたのですがよく考えたら依存しなくても実装できるので途中で依存を抜きました。ライブラリに追従する必要がないのでよりメンテンナスが少なくできます。まとめholiday_jpのデータセットのYAMLから生成した情報を使って祝日を取得するDartのパッケージのholiday_jpを作りました。CHANGELOGを自動で作ったりはCiderを使えばいい感じでできそうだったので違うパッケージつくるときとかは試してみようと思います。blogHomeAboutTool。