Pythonで曜日を取得する方法を完全解説!初心者でもわかるweekday()とisoweekday()
生徒
「Pythonで今日が何曜日かを調べることはできますか?カレンダーを見なくても分かるようにしたいです」
先生
「できますよ。Pythonには日付や時間を扱う機能が用意されていて、曜日を数字として取り出すことができます」
生徒
「数字で曜日が分かるんですか?日曜日とか月曜日じゃなくても大丈夫なんですか?」
先生
「最初は数字で出てきますが、仕組みを理解すればとても便利です。基本から順番に説明していきましょう」
1. Pythonで曜日を取得するとはどういうことか
Pythonで曜日を取得するとは、ある日付が月曜日なのか火曜日なのかといった情報を、プログラムの中で自動的に調べることです。人間はカレンダーを見れば曜日が分かりますが、コンピュータは自分で考えることができません。そのため、曜日を計算するための仕組みがあらかじめ用意されています。
Pythonでは「日時操作」と呼ばれる分野で、日付や時間を扱います。日時操作とは、日付を保存したり、日付を比べたり、曜日を調べたりする一連の作業のことです。今回の記事では、その中でも特に初心者がつまずきやすい「曜日の取得」に焦点を当てて解説します。
2. datetimeモジュールの基本を知ろう
Pythonで日付や曜日を扱うときは、datetimeモジュールというものを使います。モジュールとは、便利な道具がひとまとめになった箱のような存在です。datetimeモジュールには、日付や時間を扱うための道具がたくさん入っています。
まずは、今日の日付を取得してみましょう。難しく感じるかもしれませんが、今は「こう書くと今日の日付が分かるんだな」くらいの理解で大丈夫です。
import datetime
today = datetime.date.today()
print(today)
2026-01-16
このように、年・月・日が自動的に表示されます。この日付を元にして、曜日を調べることができます。
3. weekday()メソッドで曜日を数字で取得する
weekday()は、曜日を数字で取得するための方法です。ここでいうメソッドとは、特定の動作を行う命令のことです。weekday()を使うと、月曜日を0として、火曜日が1、水曜日が2というように数字が割り当てられます。
最初は数字だけを見ると分かりにくいですが、プログラムの中で条件分岐をするときにとても役立ちます。
import datetime
today = datetime.date.today()
weekday_number = today.weekday()
print(weekday_number)
4
この結果が4であれば、月曜日を0と数えて5番目の日、つまり金曜日であることが分かります。数字と曜日の対応を覚えておくことが大切です。
4. isoweekday()メソッドとの違いを理解しよう
isoweekday()も曜日を取得する方法ですが、数字の割り当て方が少し違います。こちらは月曜日が1、日曜日が7になります。日曜日が7になるため、人間の感覚に近いと感じる人も多いです。
import datetime
today = datetime.date.today()
iso_number = today.isoweekday()
print(iso_number)
5
同じ金曜日でも、weekday()では4、isoweekday()では5になります。この違いを知らずに使うと、曜日がずれてしまう原因になるので注意が必要です。
5. 数字を日本語の曜日に変換する考え方
数字だけでは分かりにくい場合、日本語の曜日に変換したくなることがあります。その場合は、曜日の名前を並べた一覧を用意して、数字を元に取り出す方法がよく使われます。
import datetime
weekdays = ["月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日"]
today = datetime.date.today()
print(weekdays[today.weekday()])
金曜日
このようにすると、数字の意味を意識しなくても、分かりやすい形で曜日を表示できます。
6. 特定の日付の曜日を調べる方法
今日だけでなく、過去や未来の曜日を調べたいこともあります。その場合は、日付を自分で指定します。例えば、誕生日や記念日が何曜日かを調べることができます。
import datetime
date = datetime.date(2025, 12, 25)
print(date.isoweekday())
4
この結果から、指定した日付が木曜日であることが分かります。カレンダーを見なくても曜日が分かるのは、とても便利です。
7. weekday()とisoweekday()を使い分けるポイント
weekday()とisoweekday()は、どちらが正しいというものではありません。プログラムの目的によって使い分けます。例えば、配列の番号として使うなら0から始まるweekday()が便利です。一方で、人に見せる前提で曜日を扱うなら、1から始まるisoweekday()の方が直感的です。
初心者のうちは、どちらを使っているかを必ず意識することが大切です。混ぜて使ってしまうと、曜日の判定を間違えてしまう原因になります。
8. 曜日取得が役立つ具体的な場面
曜日を取得できるようになると、平日と休日で処理を変えたり、特定の曜日だけ動く仕組みを作ったりできます。例えば、月曜日だけ特別な表示をしたり、土日は処理を止めたりといったことが可能になります。
このように、Pythonで曜日を取得する方法を知っておくと、日常生活に近い処理をプログラムで表現できるようになります。初心者のうちは、まず曜日が数字で取得できるという仕組みをしっかり理解することが大切です。