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で曜日を取得する方法を知っておくと、日常生活に近い処理をプログラムで表現できるようになります。初心者のうちは、まず曜日が数字で取得できるという仕組みをしっかり理解することが大切です。
まとめ
Pythonで曜日を取得する基本の総まとめ
本記事では、Pythonで曜日を取得する方法として、datetimeモジュールの使い方と、weekdayとisoweekdayの違いについて詳しく解説しました。プログラミング初心者にとって、日付や時間の扱いは少し難しく感じる部分ですが、基本的な仕組みを理解してしまえば、非常にシンプルで便利に活用できる分野です。
Pythonでは、datetime.date.today()を使うことで現在の日付を取得し、その日付に対してweekday()やisoweekday()を呼び出すことで曜日を数値として取得できます。この「日付から曜日を導き出す」という流れは、業務システムやWebアプリケーション、データ分析など、さまざまな分野で活用される重要な基礎知識です。
weekdayとisoweekdayの違いを確実に理解する
特に重要なのは、weekdayとisoweekdayの違いです。weekdayは月曜日を0として日曜日を6とする仕組みであり、プログラム内部の処理や配列のインデックスと相性が良い特徴があります。一方でisoweekdayは月曜日を1として日曜日を7とするため、人間の感覚に近い曜日表現になります。
この違いを理解していないと、曜日の判定ミスや条件分岐のバグにつながるため、初心者の段階でしっかりと使い分けを意識することが大切です。特に平日判定や週末処理を行う場合には、どちらのメソッドを使用しているかを明確にしておく必要があります。
曜日を日本語に変換する実践テクニック
実際の開発では、数値のままでは分かりにくいため、日本語や英語の曜日に変換して表示することが多くなります。その際には、リストや辞書を使って対応させる方法が基本となります。
import datetime
weekdays = ["月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日"]
today = datetime.date.today()
print(weekdays[today.weekday()])
このように、weekdayの戻り値をインデックスとして利用することで、簡単に曜日を日本語に変換できます。初心者の方でもすぐに実践できる便利な方法なので、ぜひ覚えておきましょう。
特定の日付の曜日を調べる応用方法
Pythonでは、今日の曜日だけでなく、任意の日付の曜日も簡単に取得できます。誕生日やイベント日、締切日などの曜日を自動で判定できるため、業務効率化にもつながります。
import datetime
date = datetime.date(2025, 12, 25)
print(date.isoweekday())
このようなコードを応用することで、「この日は平日か休日か」「何曜日に処理を実行するか」といったロジックを簡単に実装できるようになります。
曜日取得が活躍する実務シーン
曜日取得の技術は、実際のシステム開発において非常に重要です。例えば、平日のみ動作するバッチ処理、土日だけ実行されるイベント、特定曜日の割引処理など、曜日を条件としたロジックは多くの場面で利用されます。
また、カレンダーアプリや予約システム、勤怠管理システムなどでも、曜日の判定は欠かせない機能です。Pythonで曜日を扱えるようになることで、より実用的なアプリケーションを開発できるようになります。
初心者がつまずかないためのポイント
初心者の方が特につまずきやすいポイントは、「曜日が数字で返ってくる」という点です。しかし、この数字には明確な意味があり、プログラムにとっては非常に扱いやすい形式です。
まずは、weekdayとisoweekdayの対応関係を覚え、そこから日本語に変換する流れを理解することが重要です。この基本が身につけば、日付処理に対する苦手意識は自然となくなっていきます。
曜日取得の理解がPythonスキルを伸ばす
Pythonのdatetimeモジュールは、初心者からプロまで幅広く使われる重要な機能です。曜日取得はその中でも最も基本的な処理の一つであり、ここをしっかり理解することで、日付計算や時間処理への応用力が大きく向上します。
今回学んだ内容をもとに、曜日判定を使ったプログラムを実際に作ってみることで、理解がさらに深まります。日常生活に近い処理をコードで表現できるようになると、プログラミングの楽しさも実感できるでしょう。
生徒
「Pythonで曜日を取得する方法がよく分かりました。数字で返ってくる理由も理解できました。」
先生
「良いですね。プログラムでは数値の方が扱いやすいので、あえて数字で返されているんです。」
生徒
「weekdayとisoweekdayの違いも重要なんですね。」
先生
「はい。ここを間違えると曜日がズレてしまうので、しっかり意識して使い分けましょう。」
生徒
「曜日を日本語に変換する方法も便利でした。」
先生
「実務では必須のテクニックです。ユーザーに見せる場合は必ず使います。」
生徒
「これで日付を使った処理も自信がつきました。」
先生
「その調子です。今回の知識はさまざまな場面で応用できるので、ぜひ活用してください。」