[Python] 日付から曜日を数字で取得する方法
Pythonでは、日付から曜日を数字で取得するために、標準ライブラリのdatetime
モジュールを使用します。
datetime
オブジェクトのweekday()
メソッドを利用すると、曜日を0から6の数字で取得できます。ここで、0は月曜日、6は日曜日を表します。
例えば、datetime.date(2023, 10, 25).weekday()
は水曜日を示す2を返します。
この方法を使うことで、日付操作を簡単に行うことができます。
datetimeモジュールを使った曜日の取得
Pythonの標準ライブラリであるdatetime
モジュールを使用すると、日付から曜日を簡単に取得することができます。
このセクションでは、datetime
モジュールのweekday()メソッド
とisoweekday()メソッド
を使って曜日を取得する方法を解説します。
weekday()メソッドの使い方
weekday()メソッド
は、曜日を0から6の数字で返します。
0が月曜日、6が日曜日を表します。
以下にサンプルコードを示します。
import datetime
# 現在の日付を取得
today = datetime.date.today()
# 曜日を取得
weekday_number = today.weekday()
print(f"今日の曜日(0=月曜日)は: {weekday_number}")
今日の曜日(0=月曜日)は: 2
このコードは、現在の日付の曜日を数字で取得し、0が月曜日、1が火曜日、2が水曜日といった形で表示します。
isoweekday()メソッドの使い方
isoweekday()メソッド
は、曜日を1から7の数字で返します。
1が月曜日、7が日曜日を表します。
以下にサンプルコードを示します。
import datetime
# 現在の日付を取得
today = datetime.date.today()
# ISO形式の曜日を取得
isoweekday_number = today.isoweekday()
print(f"今日の曜日(1=月曜日)は: {isoweekday_number}")
今日の曜日(1=月曜日)は: 3
このコードは、ISO形式で現在の日付の曜日を数字で取得し、1が月曜日、2が火曜日、3が水曜日といった形で表示します。
weekday()とisoweekday()の違い
weekday()
とisoweekday()
の主な違いは、曜日を表す数字の範囲と開始日です。
以下の表にまとめます。
メソッド名 | 曜日範囲 | 開始日 |
---|---|---|
weekday() | 0-6 | 月曜日 |
isoweekday() | 1-7 | 月曜日 |
weekday()
は0から始まり、0が月曜日、6が日曜日です。isoweekday()
は1から始まり、1が月曜日、7が日曜日です。
この違いを理解することで、用途に応じて適切なメソッドを選択することができます。
calendarモジュールを使った曜日の取得
Pythonのcalendar
モジュールは、カレンダー関連の操作を行うための便利な機能を提供しています。
このセクションでは、calendar
モジュールを使って日付から曜日を取得する方法を解説します。
calendarモジュールとは
calendar
モジュールは、カレンダーに関連するさまざまな関数を提供するPythonの標準ライブラリです。
月や年のカレンダーをテキスト形式で表示したり、特定の日付の曜日を取得したりすることができます。
calendar
モジュールを使用することで、カレンダー操作を簡単に行うことができます。
weekday()関数の使い方
calendar
モジュールのweekday()関数
は、指定した日付の曜日を0から6の数字で返します。
0が月曜日、6が日曜日を表します。
以下にサンプルコードを示します。
import calendar
# 特定の日付の曜日を取得
year = 2023
month = 10
day = 25
weekday_number = calendar.weekday(year, month, day)
print(f"{year}年{month}月{day}日の曜日(0=月曜日)は: {weekday_number}")
2023年10月25日の曜日(0=月曜日)は: 2
このコードは、指定した日付の曜日を数字で取得し、0が月曜日、1が火曜日、2が水曜日といった形で表示します。
calendarモジュールの利点と制限
calendar
モジュールには以下の利点と制限があります。
利点:
- カレンダー関連の操作を簡単に行える。
- 月や年のカレンダーをテキスト形式で表示できる。
- 特定の日付の曜日を簡単に取得できる。
制限:
calendar
モジュールは、日付の計算や操作には向いていない。- 日付のフォーマットやタイムゾーンの操作はサポートしていない。
calendar
モジュールは、カレンダー表示や曜日の取得に特化しており、日付の計算やフォーマットにはdatetime
モジュールを併用することが一般的です。
用途に応じて、適切なモジュールを選択することが重要です。
応用例
Pythonを使って日付から曜日を取得する基本的な方法を学んだところで、ここではその応用例をいくつか紹介します。
これらの例を通じて、実際のプログラムでどのように活用できるかを理解しましょう。
日付リストから曜日を一括取得する方法
複数の日付がリストとして与えられた場合、それぞれの日付の曜日を一括で取得する方法を紹介します。
以下のサンプルコードでは、datetime
モジュールを使用して日付リストから曜日を取得します。
import datetime
# 日付のリストを定義
date_list = [
datetime.date(2023, 10, 25),
datetime.date(2023, 10, 26),
datetime.date(2023, 10, 27)
]
# 各日付の曜日を取得
weekdays = Sun, 03 Nov 2024 18:43:50 +0000
print("各日付の曜日(0=月曜日):", weekdays)
各日付の曜日(0=月曜日): [2, 3, 4]
このコードは、日付リストから各日付の曜日を取得し、リストとして出力します。
曜日を日本語で表示する方法
曜日を数字ではなく、日本語で表示したい場合があります。
以下のサンプルコードでは、曜日を日本語で表示する方法を示します。
import datetime
# 日本語の曜日リスト
japanese_weekdays = ["月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日"]
# 現在の日付を取得
today = datetime.date.today()
# 曜日を日本語で表示
weekday_japanese = japanese_weekdays[today.weekday()]
print(f"今日の曜日は: {weekday_japanese}")
今日の曜日は: 水曜日
このコードは、weekday()メソッド
で取得した数字を日本語の曜日に変換して表示します。
特定の曜日の日付をフィルタリングする方法
特定の曜日に該当する日付だけを抽出したい場合があります。
以下のサンプルコードでは、日付リストから金曜日に該当する日付をフィルタリングする方法を示します。
import datetime
# 日付のリストを定義
date_list = [
datetime.date(2023, 10, 25),
datetime.date(2023, 10, 26),
datetime.date(2023, 10, 27)
]
# 金曜日に該当する日付をフィルタリング
fridays = Sun, 03 Nov 2024 18:43:50 +0000
print("金曜日の日付:", fridays)
金曜日の日付: [datetime.date(2023, 10, 27)]
このコードは、日付リストから金曜日に該当する日付を抽出し、リストとして出力します。
まとめ
Pythonを使って日付から曜日を取得する方法には、datetime
モジュールとcalendar
モジュールを利用する方法があります。
datetime
モジュールのweekday()
とisoweekday()メソッド
、calendar
モジュールのweekday()関数
を使い分けることで、さまざまな曜日取得のニーズに対応できます。
この記事を通じて、曜日の取得方法を理解し、実際のプログラムで活用してみてください。