カテゴリ: Python 更新日: 2026/02/03

Pythonで曜日を取得する方法を解説!weekday()とisoweekday()の違いと使い方

Pythonで曜日を取得する方法(weekday() / isoweekday())
Pythonで曜日を取得する方法(weekday() / isoweekday())

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

生徒

「Pythonで“今日は何曜日?”って調べることってできますか?」

先生

「できますよ!Pythonではweekday()isoweekday()という関数を使えば、今日の曜日を数字で取得できます。」

生徒

「数字って、月曜なら1とか日曜なら7とかですか?」

先生

「それはisoweekday()のパターンですね。実はweekday()isoweekday()で少し違いがあるんです。順番に解説していきますね。」

1. Pythonで曜日を取得する方法とは?

1. Pythonで曜日を取得する方法とは?
1. Pythonで曜日を取得する方法とは?

Python(パイソン)で「今日は何曜日かな?」と調べたいときは、標準で用意されているdatetime(デイトタイム)という便利な道具箱(モジュール)を使います。この中にあるweekday()isoweekday()という機能を使うのが一般的です。

プログラミングの世界では、曜日を「月曜日」という文字ではなく、「0」や「1」といった数字で扱うのが大きな特徴です。たとえば、カレンダーアプリやゴミ出しの通知システムを作る際、プログラム側で「もし数字が0(月曜)なら通知する」といった判断をさせるために非常に役立ちます。

未経験者の方へ:
「なぜわざわざ数字にするの?」と思うかもしれませんが、コンピューターにとっては文字よりも数字の方が「比較」や「計算」が得意だからです。

まずは、最もシンプルな「今日の曜日を数字で表示する」サンプルコードを見てみましょう。コピー&ペーストして実行するだけで、今の曜日が数字で出力されます。


# datetimeモジュールを読み込みます
from datetime import datetime

# 今日の日付情報を取得して「today」という変数に入れます
today = datetime.now()

# weekday()を使って、曜日を数字で表示します
print("今日の曜日の数字は:", today.weekday())

このように、わずか数行のコードで日付から曜日を割り出すことができます。月曜日を「0」から数え始めるのか、それとも「1」から数え始めるのかによって使う関数が変わりますので、その具体的な違いを次の章から詳しく見ていきましょう。

2. weekday()の使い方と特徴

2. weekday()の使い方と特徴
2. weekday()の使い方と特徴

weekday()は、Pythonで日付を取得したときに、その日が何曜日かを「0~6」の数字で教えてくれる関数です。

0が月曜日、6が日曜日というのがポイントです。


from datetime import datetime

today = datetime.today()
print(today.weekday())

2

この例では「2」と表示されているので、「水曜日」を意味しています。曜日の数字の対応は次の通りです:

  • 0:月曜日
  • 1:火曜日
  • 2:水曜日
  • 3:木曜日
  • 4:金曜日
  • 5:土曜日
  • 6:日曜日

3. isoweekday()の使い方と違い

3. isoweekday()の使い方と違い
3. isoweekday()の使い方と違い

isoweekday()も同じように曜日を数字で返してくれますが、1〜7の範囲で表され、1が月曜日、7が日曜日というルールになります。


from datetime import datetime

today = datetime.today()
print(today.isoweekday())

3

この場合、「3」は水曜日を意味します。weekday()と違って、日曜日が「7」になるので注意しましょう。

4. weekday()とisoweekday()の違いを表で比較

4. weekday()とisoweekday()の違いを表で比較
4. weekday()とisoweekday()の違いを表で比較

2つの関数の違いを、曜日ごとの数字でまとめると以下のようになります:

曜日 weekday() isoweekday()
月曜日01
火曜日12
水曜日23
木曜日34
金曜日45
土曜日56
日曜日67

このように、同じ曜日でも数字がずれるので、使い分けには注意しましょう。

5. 今日の曜日を日本語で表示したいとき

5. 今日の曜日を日本語で表示したいとき
5. 今日の曜日を日本語で表示したいとき

数字だけではわかりにくいので、「月曜日」や「火曜日」など、日本語の文字で表示したいときもありますよね。そんなときは、自分でリスト(配列)を用意して、数字に対応した文字列を表示する方法が使えます。


week_list = ["月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日"]
today = datetime.today()
print("今日は", week_list[today.weekday()])

今日は 水曜日

weekday()の戻り値(0〜6)を使って、リストの中から対応する曜日を選びます。

6. 未来や過去の日付の曜日も取得できる

6. 未来や過去の日付の曜日も取得できる
6. 未来や過去の日付の曜日も取得できる

曜日を調べるのは「今日」だけとは限りません。「来週の金曜日は何曜日?」とか「1ヶ月前の曜日は?」など、他の日付に対しても曜日の取得ができます


from datetime import timedelta

next_week = datetime.today() + timedelta(days=7)
print("来週の曜日(数字):", next_week.weekday())
print("来週の曜日(日本語):", week_list[next_week.weekday()])

来週の曜日(数字): 2
来週の曜日(日本語): 水曜日

timedeltaと組み合わせることで、好きな日付の曜日を調べることができます。

7. 初心者のための補足:曜日を数字で扱う理由とは?

7. 初心者のための補足:曜日を数字で扱う理由とは?
7. 初心者のための補足:曜日を数字で扱う理由とは?

なぜ曜日を「月曜日」や「火曜日」ではなく、数字で扱うのか疑問に思うかもしれません。

それは、プログラムの中では「文字」より「数字」のほうが比較や計算がしやすいからです。たとえば「月曜日から金曜日までの範囲かどうか」を調べるとき、数字であれば次のように簡単に書けます:


if today.weekday() < 5:
    print("平日です")
else:
    print("週末です")

平日です

このように、weekday()で得た数字を使うことで、曜日による条件分岐が簡単にできるのです。

8. 曜日を使ったアプリ例:予定表やリマインダー

8. 曜日を使ったアプリ例:予定表やリマインダー
8. 曜日を使ったアプリ例:予定表やリマインダー

曜日の情報は、日々の予定管理アプリや、タスクリマインダーを作るときにとても役立ちます。たとえば:

  • 「金曜日に週報を自動で送信」
  • 「月曜日にToDoをリセット」
  • 「土日は通知をオフ」

このような処理を作るには、weekday()isoweekday()の知識が欠かせません。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
Pythonのカスタム例外を作成する方法を完全解説!初心者でもわかる独自のExceptionクラス入門
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPの真偽値と条件判定をやさしく解説!初心者でもわかるempty・isset・is_nullの使い方
New4
PHP
PHP の file_get_contents() を使ってファイルを読み込む方法!初心者でもできる簡単なファイル操作
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
PHP
PHPの可変長引数(...$args)の使い方を完全ガイド!初心者でもわかる基本と活用方法
No.6
Java&Spring記事人気No6
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.7
Java&Spring記事人気No7
PHP
初心者向けPHP の MySQL のデータを更新する方法(UPDATE 文)完全ガイド
No.8
Java&Spring記事人気No8
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方