Pythonで曜日を取得する方法を完全ガイド!初心者でもわかるweekday()とisoweekday()
生徒
「Pythonで日付から曜日を調べることってできますか?カレンダーみたいに曜日がわかったら便利だと思ったんです。」
先生
「もちろんできますよ。Pythonには曜日を数値で取り出すためのweekday()やisoweekday()という方法が用意されています。」
生徒
「数字で曜日がわかるってどういうことですか?数字と曜日のつながりがよくわからなくて……。」
先生
「それぞれのメソッドが決めている番号のルールがあって、その番号に応じて曜日がわかる仕組みなんです。丁寧に説明していきますね。」
1. weekday()とは?
Pythonのweekday()は、日付の曜日を数字で返してくれる機能です。曜日の数字は「月曜日が0、日曜日が6」という並びになっています。ふだんの生活で曜日を数字に置き換えることは少ないかもしれませんが、コンピュータの中では曜日を処理するためにこうした数字が使われます。カレンダーの並びをそのまま数字にしたようなイメージだと理解しやすくなります。
from datetime import datetime
today = datetime.now()
print(today.weekday())
3
このように、weekday()は数字で曜日を返します。例えば「3」が返ってきたら、それは「木曜日」を意味しています。数字のままだと直感的にわかりにくいので、後で説明する変換方法を使うと読みやすくなります。
2. isoweekday()とは?
isoweekday()はweekday()と似ていますが、曜日の番号が異なる点が特徴です。「月曜日が1、日曜日が7」という国際標準に沿った番号になっています。数字が1から始まるので、初心者にはこちらのほうが自然に感じる場合も多いです。
from datetime import datetime
today = datetime.now()
print(today.isoweekday())
4
この例では「4」が表示され、これは「木曜日」を意味します。曜日を扱うアプリケーションや勤怠システムなどではisoweekday()のほうが使われることも多く、用途によって使い分けができます。
3. 数字から曜日名に変換して表示する
曜日が数字のままだと読みにくいため、一覧を作って日本語の曜日に変換するとわかりやすくなります。辞書のように「数字→対応する曜日」を作っておくことで、プログラムの中でも見やすい表示ができます。
from datetime import datetime
week = ["月", "火", "水", "木", "金", "土", "日"]
today = datetime.now()
w = today.weekday()
print(week[w] + "曜日")
木曜日
この方法なら、数字を意識せずに自然な表現で曜日を表示できます。カレンダーアプリや日付メモのような機能を作りたいときにも広く応用できます。
4. 具体的な応用例:日付と曜日をあわせて表示する
曜日がわかるようになると、日付とあわせて表示する機能も簡単に作れます。たとえば予定表やスケジュールの書き出しに利用できます。プログラムの中で日付を扱うときに曜日が入っていると、見た目のわかりやすさが大きく変わります。
from datetime import datetime
week = ["月", "火", "水", "木", "金", "土", "日"]
today = datetime.now()
day_text = today.strftime("%Y-%m-%d")
weekday_text = week[today.weekday()]
print(day_text + "(" + weekday_text + ")")
2025-01-15(水)
このように整った形式で表示すれば、画面に出したときにも見やすくなり、初心者でも安心して扱えるプログラムにできます。
5. weekday()とisoweekday()の違いと選び方
二つのメソッドはどちらも曜日を数字で返しますが、番号の基準が違うため注意が必要です。どちらを使うかは用途によって決めればよく、カレンダーと同じ「月曜始まりの流れ」にしたい場合はweekday()、国際標準の番号にしたい場合はisoweekday()を使います。
また、曜日の扱いはアプリやサービスの仕様によって求められる形式が異なるため、どちらかに統一しておくと後で混乱しにくくなります。たとえば月曜日を「0」ではなく「1」として扱いたい場合は、isoweekday()のほうが直感的になるでしょう。
Pythonの日時操作では、日付の計算や時刻の処理を行う際に曜日が使われることが多くあります。特に繰り返しの予定を組む機能や、平日と休日を判定したいときには曜日の判定が欠かせません。初めのうちは数字と曜日の関係を覚えるのが少し難しく感じるかもしれませんが、何度か使っていくと自然に慣れてきます。