【Python基礎】datetimeモジュールで曜日を扱う方法

  • URLをコピーしました!
目次

datetimeモジュール

前回、Pythonのリストのコピーで注意することを紹介しました。

今回はPythonのdatetimeモジュールで曜日を扱う方法を解説していきます。

それでは始めていきましょう。

datetimeモジュールのおさらい

datetimeモジュールに関しては、

1.基本的な使い方

2.timeとの比較とエポック秒

3.タイムゾーンの設定

4.Not-a-Timeの取り扱い

5.日時の計算

などを紹介してきました。

今回は曜日ということで、年月日を取得する方法をおさらいしましょう。

現在の年月日と時間を取得するには、datetimeモジュールをインポートした後、「datetime.datetime.now()」で取得できます。

そして年だけ取得する場合は「.year」、月だけ取得する場合は「.month」、日だけ取得する場合は「.day」で取得できます。

import datetime

timenow = datetime.datetime.now()

print(timenow)
print(timenow.year)
print(timenow.month)
print(timenow.day)

実行結果
2023-01-28 07:26:24.164682
2023
1
28

曜日の取得方法:.weekday()、.isoweekday()

曜日の取得方法は「.weekday()」、「.isoweekday()」の2種類があります。

「.weekday()」の場合は、0が月曜日、1が火曜日、2が水曜日、3が木曜日、4が金曜日、5が土曜日、6が日曜日です。

import datetime

timenow = datetime.datetime.now()

dayofweek = datetime.date(timenow.year, timenow.month, timenow.day).weekday()

print(dayofweek)

実行結果
5

2023年1月28日は土曜日なので「5」が出力されました。

「.isoweekday()」の場合は、0が日曜日、1が月曜日、2が火曜日、3が水曜日、4が木曜日、5が金曜日、6が土曜日です。

import datetime

timenow = datetime.datetime.now()

dayofweek = datetime.date(timenow.year, timenow.month, timenow.day).isoweekday()

print(dayofweek)

実行結果
6

2023年1月28日は土曜日なので「6」が出力されました。

数字から曜日に変更するには、辞書などを使って変更します。

こちらは「.weekday()」の例です。

dayofweek_dict = {0:'Mon.', 1:'Tue.', 2:'Wed.', 3:'Thu', 4:'Fri.', 5:'Sat.', 6:'Sun.'}

dayofweek = datetime.date(timenow.year, timenow.month, timenow.day).weekday()

print(dayofweek_dict[dayofweek])

実行結果
Sat.

「.isoweekday()」の例です。

dayofweek_dict = {0:'Sun.', 1:'Mon.', 2:'Tue.', 3:'Wed.', 4:'Thu', 5:'Fri.', 6:'Sat.'}

dayofweek = datetime.date(timenow.year, timenow.month, timenow.day).isoweekday()

print(dayofweek_dict[dayofweek])

実行結果
Sat.

特定の日の曜日を取得する方法

今日の日付ではなく、特定の日の曜日を取得するには年、月、日を数値で指定し、「datetime.date(年,月,日)」でdatetime型に変換します。

その後、「.weekday()」や「.isoweekday()」で曜日を取得します。

「.weekday()」の例はこちらです。

dayofweek_dict = {0:'Mon.', 1:'Tue.', 2:'Wed.', 3:'Thu', 4:'Fri.', 5:'Sat.', 6:'Sun.'}

year = 2020
month = 7
day = 7

dayofweek = datetime.date(year, month, day).weekday()

print(dayofweek_dict[dayofweek])

実行結果
Tue.

「.isoweekday()」の例はこちらです。

dayofweek_dict = {0:'Sun.', 1:'Mon.', 2:'Tue.', 3:'Wed.', 4:'Thu', 5:'Fri.', 6:'Sat.'}

year = 2020
month = 7
day = 7

dayofweek = datetime.date(year, month, day).isoweekday()

print(dayofweek_dict[dayofweek])

実行結果
Tue.

次回は数式を扱うsympyを紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次