Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのholidaysライブラリで世界各国の祝日を簡単に取得・判定する方法

このチュートリアルでは、Pythonのholidaysライブラリについて解説します。holidaysライブラリを使うと、さまざまな国の特定の日が祝日かどうかを簡単に判定できます。取得できるのは公的な祝日(public holidays)のみですが、世界中の国に対応しているのが魅力です。

holidaysライブラリのインストール

まず、以下のコマンドでモジュールをインストールしましょう。

pip install holidays

インストールが完了したら、実際に祝日情報を取得してみます。ここでは例として、2020年のインドの祝日一覧を取得する手順を紹介します。

対応している国のコードは、holidaysライブラリの公式ドキュメントで確認できます。基本的な流れは以下の通りです。

  • holidaysモジュールをインポートする
  • holidays.India() をインスタンス化し、キーワード引数 years に 2020 を渡す
  • 日付をキーとした祝日の辞書が返される
  • 辞書の各要素をループ処理して出力する

インドの祝日一覧を取得するサンプルコード

それでは、すべての祝日を取得するコードを見てみましょう。

# holidaysモジュールをインポート
import holidays

# インドの祝日を取得
india_holidays = holidays.India(years=2020)

# 祝日を順番に出力
for date, occasion in india_holidays.items():
    # 日付と祝日名を表示
    print(f'{date} - {occasion}')

実行結果

上記のコードを実行すると、次のような結果が得られます。

2020-01-14 - Makar Sankranti / Pongal
2020-01-26 - Republic Day
2020-08-15 - Independence Day
2020-10-02 - Gandhi Jayanti
2020-05-01 - Labour Day
2020-12-25 - Christmas

このように、対応している国であればどの国の祝日でも同じ方法で取得できます。国名部分を変更するだけでOKです。続いて、特定の日付が何の祝日なのかを調べる方法を見ていきましょう。

特定の日付の祝日名を取得する

# holidaysモジュールをインポート
import holidays

# インドの祝日を取得
india_holidays = holidays.India()

# 2020年8月15日の祝日名を取得
print(f"Occasion on 15-08-2020: {india_holidays.get('15-08-2020')}")

実行結果

このコードを実行すると、以下の出力が得られます。

Occasion on 15-08-2020: Independence Day

get()メソッドに日付文字列を渡すだけで、その日が祝日であれば祝日名が返されます。

特定の日が祝日かどうかを判定する

次に、ある日が祝日かどうかを判定する方法です。get()メソッドの戻り値がNoneかどうかを確認することで、祝日か平日かを判別できます。

# holidaysモジュールをインポート
import holidays

# インドの祝日を取得
india_holidays = holidays.India()

# 判定する日付
date_one = '15-08-2020'
date_two = '16-08-2020'

print(f"Is it holiday on {date_one}: {india_holidays.get(date_one) != None}")
print(f"Is it holiday on {date_two}: {india_holidays.get(date_two) != None}")

実行結果

プログラムを実行すると、次のような結果になります。

Is it holiday on 15-08-2020: True
Is it holiday on 16-08-2020: False

8月15日は独立記念日のためTrue、翌日の8月16日は祝日ではないためFalseと判定されました。

まとめ

holidaysライブラリを使えば、わずか数行のコードで世界各国の祝日を取得したり、特定の日が祝日かどうかを判定したりできます。営業日計算やスケジュール管理アプリなど、ビジネスシーンでも活用できる便利なライブラリなので、ぜひ試してみてください。

このチュートリアルについて不明な点がある場合は、コメント欄でお気軽にお尋ねください。

  1. PythonのTkinterでポップアップダイアログを表示する方法【messagebox活用ガイド】

    Tkinterは、GUIベースのアプリケーションを作成・開発するためのPython標準ライブラリです。Tkinterを使えばアプリケーションを構築し、さまざまなウィジェットを追加することで、よりインタラクティブな画面を作ることができます。ここでは、アプリケーション内でポップアップダイアログを表示する方法を紹介します。この場合に役立つのが、tkinterに組み込まれているmessageboxモジュールです。messageboxを使うと、エラーメッセージ、情報ボックス、確認ダイアログなど、さまざまな種類のダイアログボックスを簡単に表示できます。サンプルコード以下の例では、クリックすると画面上にポッ

  2. Pythonの辞書get()メソッドの使い方と活用例を徹底解説

    Pythonのget()メソッドは、標準ライブラリに含まれるメソッドで、辞書(dict)の要素に安全にアクセスするために使用されます。プログラムを作成していると、辞書に存在しないキーを検索したいケースがよくあります。このような場合、角括弧(インデックス)を使った通常のアクセス方法ではKeyErrorが発生し、プログラムが停止してしまいます。しかし、get()メソッドを使えば、エラーを発生させることなくプログラムを継続して実行できます。 構文 dict.get(key[, value]) 第2引数のvalueは省略可能です。キーが存在しない場合に返すデフォルト値を指定できます。省略した場合はNo