Pythonで今日が祝日なのかどうか判定する方法を備忘録もかねて書いておきます。
タイトルの「今日が祝日かどうか判定する方法」だけを知りたい方は「今日が祝日かどうか判定する」という項目からお読みください。
使うモジュール
- datetime
- jpholiday
まず、pipで jpholiday
というモジュールをインストールします。
|
|
これでモジュールの準備は完了です。
jpholiday
の使い方
まずは、基本的な使い方をマスターしていきましょう。
ちなみに、jpholiday
のGitHubリポジトリはこちら
です。
指定した日付の祝日名を取得
あらかじめ指定した日付の祝日名を取得します。
|
|
|
|
指定した日付が1月1日ですので、出力結果は「元日」となります。非常に簡単です。
祝日ではない日付を指定した場合はどうなるのでしょうか。
|
|
|
|
出力結果は None
になります。
指定した日付が祝日かどうか判定する
先ほどは祝日の名前(元日など)を取得するプログラムでしたが、今度は祝日かどうかを判定するプログラムを書いてみましょう。
といっても、先ほどのプログラムとほとんど変わりません。非常にシンプルなモジュールです。
2020年1月1日が祝日かどうか判定してみましょう。
|
|
|
|
1月1日は祝日ですので、出力結果は True
になります。
1月5日など、祝日でない場合の出力結果は False
になります。
指定範囲の祝日を取得する
指定年、指定月、任意の指定範囲の祝日を取得するプログラムを書いてみます。
|
|
2020年の祝日一覧が出力されれば成功です。
|
|
2020年5月の祝日一覧が出力されれば成功です。
|
|
これで2019年から2020年までの祝日がすべて出力されれば成功です。
今日が祝日かどうか判定する
さて、本題です。今日が祝日かどうか判定するプログラムを書いてみます。
datetime
と、先ほど解説した jpholiday
の使い方を応用することで今日が祝日かどうか判定できるようになります。まあ、まずはサンプルソースを見てください。
|
|
とくに難しい事はありません。
「指定した日付が祝日かどうか判定する」という項目でやった内容を応用しただけです。
今日が祝日なら True
、今日が祝日でないなら False
が出力されます。
今日が祝日かどうかで処理を分岐させる
今日が祝日なら「今日は休みだー!!」と喜ぶ、今日が祝日じゃないなら「今日は休みじゃない……」と落ち込むプログラムを書いてみます。
先ほどのコードをそのまま持ってきて、if文で条件分岐するだけの簡単なプログラムです。
|
|
このようにすることで、祝日でない日の処理を決めることもできます。