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を紹介します。
ではでは今回はこんな感じで。
コメント