Pythonで指定日が祝日か判定する方法!初心者でもわかるholidaysモジュールの使い方
生徒
「Pythonで特定の日が祝日かどうかって判定できますか?」
先生
「はい、holidaysという便利なモジュールを使えば、日本の祝日も簡単に調べられますよ。」
生徒
「Python初心者でも簡単に使えるんですか?」
先生
「もちろんです!使い方を一から丁寧に説明しますので、一緒にやってみましょう!」
1. holidaysモジュールとは?祝日を簡単に判定できる便利機能
holidaysモジュールは、指定した国の祝日を自動で判定してくれるPythonの外部ライブラリです。アメリカ、日本、カナダなど多くの国に対応していて、業務システムやスケジュール管理にとても役立ちます。
日本の祝日も対応しており、「この日が祝日かどうか」「この年の祝日はいつか」などをプログラムから簡単にチェックできます。
2. holidaysモジュールのインストール方法
holidaysモジュールは標準では入っていないため、まずはPythonにインストールする必要があります。以下のコマンドを使ってインストールしてください。
pip install holidays
コマンドプロンプトやターミナルで上の命令を打てば、数秒で完了します。
3. 指定日が祝日かどうかを判定する基本的なコード
それでは、具体的に2025年1月1日が祝日かどうかを判定するサンプルコードを見てみましょう。日本の祝日として判定したいので、country='JP'を指定します。
import holidays
import datetime
# 日本の祝日リストを作成(2025年)
jp_holidays = holidays.country_holidays('JP', years=2025)
# 判定したい日付
check_date = datetime.date(2025, 1, 1)
# 判定
if check_date in jp_holidays:
print(f"{check_date} は祝日です({jp_holidays[check_date]})")
else:
print(f"{check_date} は祝日ではありません")
2025-01-01 は祝日です(元日)
jp_holidaysは辞書のような構造になっていて、日付をキーにして祝日の名前を取り出せます。とてもシンプルです。
4. 今日が祝日かどうかを自動判定する方法
datetime.date.today()を使えば、今日の日付が祝日かどうかをリアルタイムでチェックできます。毎日自動で判定したいときに便利です。
import holidays
import datetime
jp_holidays = holidays.country_holidays('JP')
today = datetime.date.today()
if today in jp_holidays:
print(f"今日は祝日です({jp_holidays[today]})")
else:
print("今日は祝日ではありません")
このように書くだけで、システムを起動したその日の祝日情報がわかります。
5. 特定の年のすべての祝日一覧を取得する
1年分の祝日を全部表示したい場合も簡単です。たとえば2025年の祝日を一覧表示するには次のようにします。
import holidays
jp_holidays = holidays.country_holidays('JP', years=2025)
for date, name in sorted(jp_holidays.items()):
print(f"{date}:{name}")
2025-01-01:元日
2025-01-13:成人の日
...
スケジュール作成やカレンダー生成にとても役立ちますね。
6. 平日・休日・祝日を組み合わせて判定する方法
たとえば「土日や祝日を休みにしたい」といった場合、曜日と祝日の両方をチェックする必要があります。
import holidays
import datetime
check_date = datetime.date(2025, 9, 15)
jp_holidays = holidays.country_holidays('JP', years=2025)
# 曜日番号(0=月曜, 6=日曜)
weekday = check_date.weekday()
if check_date in jp_holidays or weekday >= 5:
print("この日は休みです")
else:
print("この日は平日です")
この日は休みです
weekday()で土曜(5)・日曜(6)を調べ、祝日とあわせて休日判定ができます。
7. holidaysモジュールの注意点と対応国
holidaysモジュールはたくさんの国に対応していますが、一部の祝日(地方限定など)は入っていないこともあります。また、将来の祝日は政府の発表で変更されることがあるため、最新の祝日情報を常に確認するようにしましょう。
対応している国のコード(JP、US、UKなど)は公式ドキュメントやholidays.list_supported_countries()で確認できます。