Python

Pythonで曜日を数字で取得する方法

Pythonで曜日を数字で取得する方法

少年
Pythonで曜日毎に違った動きをさせたいんだけど、何か方法はない?
あるよ。
Pythonで曜日を取得できるから、取得した曜日の値によって処理を変えたらいいよ。

Pythonでどうすれば曜日を取得できるかお悩みではないだろうか。
曜日はPythonで簡単に取得することができ、今日でも他の日でも可能だ。
今回はPythonで曜日を数字で取得する方法について紹介する。


Pythonで曜日を数字で取得する方法

Pythonで今日の曜日を取得するには datetime.date.today() で今日の日付を取得して、weekday()メソッドを用いると取得できる。

import datetime

# 曜日番号を取得(0は月曜日)
week_num = datetime.date.today().weekday()
print(datetime.date.today())
print(type(datetime.date.today()))
print(week_num)
# 2020-05-05
# <class 'datetime.date'>
# 1

取得できる値は数値となっており、月曜日が0で0から6までの値が返される。
日曜日は0ではなく6なので注意。


今日以外の曜日を取得する方法

今日以外の曜日も取得するにはdatetime型の変数に、先程と同じようにweekday()メソッドを用いると曜日の数値を取得できる。

someday = datetime.datetime.strptime("2020-05-01", "%Y-%m-%d")
week_num_someday = someday.weekday()
print(someday)
print(type(someday))
print(week_num_someday)
# 2020-05-01 00:00:00
# <class 'datetime.datetime'>
# 4


曜日名を取得する方法

曜日の数値ではなく名前で取得したい場合は calendar.day_name に曜日の番号を指定すると曜日の名前を取得することができる。

import calendar

week_name_someday = calendar.day_name[week_num_someday]
print(week_name_someday)
# Friday


他にも strftime の引数に %A%a を指定することで、日付に対応する曜日名を取得することもできる。

print(someday.strftime('%A, %a'))
# Friday, Fri


Pythonで曜日を数字で取得する方法 まとめ

Pythonで曜日を取得するには weekday() を使う。
weekday() は今日(today)以外にもdatetime型の変数にも適用可能。
戻り値は0から6までの数値で月曜日が0に当たる。
曜日名を取得したい場合は calendar.day_name または strftime を用いる。


また今回の曜日取得を用いて、Twitterで曜日別に自動ツイートをする処理を作成した記事もあるのでご参考。

コチラもオススメ

KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

役に立ったらシェアしてくれると励みになります。

にほんブログ村 IT技術ブログへ

-Python

Translate »

Copyright© ITips , 2020 All Rights Reserved.