カテゴリ: Python 更新日: 2026/01/06

Pythonで祝日を判定する方法を完全ガイド!初心者でもわかるholidaysモジュール入門

Pythonで指定日が祝日か判定する方法(holidaysモジュール)
Pythonで指定日が祝日か判定する方法(holidaysモジュール)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで特定の日が祝日かどうか調べる方法ってありますか?カレンダーを見ながら手で確認するのは大変なので、プログラムで自動的に判断できる仕組みが知りたいです。」

先生

「Pythonでは、holidaysという便利なモジュールを使うと、日付が祝日かどうかを簡単に判定できます。しかも日本の祝日にも対応しているので、日付管理のプログラムにはとても役立つ仕組みなんです。」

生徒

「プログラミングが初めてでも使えるんですか?難しい設定とか必要ないですか?」

先生

「特別な知識は必要ありません。日付を指定して祝日かどうかを調べるだけなら数行のコードでできますよ。一緒に基本から確認していきましょう。」

1. holidaysモジュールとは?

1. holidaysモジュールとは?
1. holidaysモジュールとは?

Pythonのholidaysモジュールは、世界各国の祝日データを扱えるライブラリです。日本の祝日だけでなく、アメリカやカナダなど複数の国に対応しています。祝日の判定処理を自動化できるため、勤怠管理システムやカレンダーアプリ、日付計算を行うプログラムで活用されています。手作業では面倒な祝日確認を自動で行えるため、初心者でも扱いやすい便利な道具といえます。

2. holidaysモジュールを使う準備

2. holidaysモジュールを使う準備
2. holidaysモジュールを使う準備

まずはライブラリをインストールします。インストールとは、Pythonで使える道具を追加する作業のことです。下記のコマンドをターミナルやコマンドプロンプトで実行してください。


pip install holidays

3. 指定した日が祝日か判定する基本的なコード

3. 指定した日が祝日か判定する基本的なコード
3. 指定した日が祝日か判定する基本的なコード

それでは実際に祝日かどうかを判定する最も基本的なコードを確認しましょう。ここでは日本の祝日を対象にします。生徒が気になっていた「今日は祝日か?」という疑問をすぐに解決できます。


import datetime
import holidays

jp_holidays = holidays.JP()

date = datetime.date(2024, 1, 1)

if date in jp_holidays:
    print("祝日です")
else:
    print("祝日ではありません")

このコードでは、まず日本の祝日データを読み込み、指定した日付がその祝日に含まれているかを調べています。inを使って「含まれているか」を確認しているため、初心者でも理解しやすい仕組みになっています。


祝日です

4. 判定した祝日の名前を取得する方法

4. 判定した祝日の名前を取得する方法
4. 判定した祝日の名前を取得する方法

日付が祝日かどうかだけでなく、「何の祝日か」まで知りたい場合もあります。例えば元日なのか成人の日なのかを判定したいケースです。holidaysモジュールでは祝日の名前を簡単に取り出すことができます。


import datetime
import holidays

jp_holidays = holidays.JP()

date = datetime.date(2024, 1, 1)

if date in jp_holidays:
    print(jp_holidays.get(date))

元日

このように、祝日の名前まで取り出せるため、表示内容を改善したいアプリケーションにも応用できます。

5. 複数の日付をまとめて祝日判定したい場合

5. 複数の日付をまとめて祝日判定したい場合
5. 複数の日付をまとめて祝日判定したい場合

毎日一つずつ判定するのではなく、複数の日付をまとめて調べたい場面もあります。例えば企業のシフト管理で、一ヶ月分の祝日をまとめて取得したいケースが代表的です。次のコードではリストに入れた複数の日付を順番に調べています。


import datetime
import holidays

jp_holidays = holidays.JP()

dates = [
    datetime.date(2024, 1, 1),
    datetime.date(2024, 1, 2),
    datetime.date(2024, 1, 8),
]

for d in dates:
    if d in jp_holidays:
        print(d, jp_holidays[d])
    else:
        print(d, "祝日ではありません")

6. 年度を指定して祝日の一覧を取得する

6. 年度を指定して祝日の一覧を取得する
6. 年度を指定して祝日の一覧を取得する

holidaysモジュールは、特定の年の祝日だけを抜き出すこともできます。例えば「今年の祝日をすべて一覧で欲しい」といったケースに役立ちます。特に業務システムや予約管理アプリでは頻繁に使用される処理です。


import holidays

jp_holidays = holidays.JP(years=2024)

for day, name in jp_holidays.items():
    print(day, name)

この方法を使うと、祝日の管理を自動化でき、手作業によるミスを防ぎながら正確なデータを扱えます。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New2
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
New3
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
New4
Python
Pythonの文字列型(str)を完全解説!連結・分割・検索の方法を紹介
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本