1. はじめに
Pythonで日付や時刻を扱う際、「今日が〇〇日だったら処理を変えたい」「週末かどうかで実行内容を分岐させたい」といったケースは多くあります。本記事では「Python|日付に応じてif文で条件分岐させる」方法を解説します。
初心者の方にもわかりやすいように、基本構文から実務的な応用例まで丁寧に紹介していきます。
2. Pythonで日付に応じてif文を使う基本
2-1. 日付を取得するには?
Pythonで現在の日付を扱うには、datetime
モジュールを使用します。以下は現在の日付を取得する基本的なコードです。
from datetime import date
# 今日の日付を取得
today = date.today()
print(today)
実行結果:
2025-07-24
このように、date.today()
を使うことで簡単に今日の日付を取得できます。
2-2. if文で条件分岐する基本構文
Pythonのif
文を使うことで、日付に応じた処理の分岐が可能です。
from datetime import date
today = date.today()
# 日付による条件分岐
if today.day == 1:
print("今日は月初です")
elif today.day == 15:
print("今日は月の中間です")
else:
print("今日は特別な日ではありません")
実行結果:
今日は特別な日ではありません
このように、today.day
で日付の「日」だけを取り出して、特定の日に処理を分岐させることができます。
3. よくある使い方・応用例
3-1. 曜日によって処理を分ける
例えば、平日と休日で処理を変えたいときに使えるのがweekday()
です。
from datetime import date
today = date.today()
weekday = today.weekday() # 月曜=0, 日曜=6
if weekday < 5:
print("今日は平日です")
else:
print("今日は週末です")
実行結果:
今日は平日です
3-2. 範囲で分岐する(例:特定の期間)
日付の範囲で処理を分けたい場合、以下のようにdatetime
型の比較ができます。
from datetime import date
today = date.today()
start = date(2025, 7, 1)
end = date(2025, 7, 31)
if start <= today <= end:
print("今月の処理を実行中")
else:
print("月外の処理です")
実行結果:
今月の処理を実行中
3-3. 年末年始の特別処理
年末年始などのイベントに応じて特別処理を入れることもできます。
from datetime import date
today = date.today()
if today.month == 12 and today.day >= 29:
print("年末モード開始")
elif today.month == 1 and today.day <= 3:
print("年始モード中")
else:
print("通常営業日です")
実行結果:
通常営業日です
4. 注意点・エラー対策
4-1. datetime型とstr型の比較に注意
よくあるミスとして、「文字列と日付型を比較」してしまうエラーがあります。次のような書き方はエラーを招きます。
today = "2025-07-24" # str型
if today == date.today():
print("一致") # エラーにはならないが、常にFalse
正しくは、両方をdatetime.date
型にそろえて比較する必要があります。
4-2. datetimeとdateの使い分け
datetime
型は時刻も含むので、==
比較ではミリ秒まで一致しないとFalseになります。date()
を使って時刻を切り落とすと安全です。
from datetime import datetime
now = datetime.now()
today_only = now.date()
if today_only == date.today():
print("正しく比較されました")
実行結果:
正しく比較されました
5. まとめ
- Pythonでは
datetime
モジュールを使って、日付を簡単に取得できます。 if
文を使えば、日付に応じて処理を柔軟に分けられます。- 曜日判定、範囲判定、イベント日判定など、実務でもよく使われます。
- 文字列との比較や
datetime
/date
型の混在には注意が必要です。
このように、「日付に応じたif文での条件分岐」は日常的な業務処理の自動化にも役立ちます。学習の際は、今日の日付や曜日を実際に使ってみて、体験しながら覚えるのがコツです!