Categories: Python

【Python】曜日を取得する方法を解説します

この記事では、Pythonで曜日を取得する方法を解説します。

日付を取得したい場合は以下の記事を参考にしてください。

日付の取得と計算する方法を解説

曜日を整数で取得する

曜日を取得するにはdatetimeモジュールのdateクラスのweekdayメソッドを使います。weekdayメソッドは、曜日を「0(月曜)〜6(日曜)」の整数で返します。

import datetime

today = datetime.date.today()

print(f'日付: {today}, 曜日{today.weekday()}')

実行結果

日付: 2022-05-18, 曜日2

指定した日時の曜日を取得することも可能です。

import datetime

day = datetime.date(2022, 1, 1)
print(f'日付: {today}, 曜日{today.weekday()}')

実行結果

日付: 2022-05-18, 曜日2

曜日を文字列で取得する

曜日を整数で受け取っても使いづらいので文字列で取得する方法も見ていきましょう!

整数から変換する

先ほど紹介したweekdayメソッドで取得した曜日(整数)を文字列で取得したい場合は列挙型のIntEnumを使うと簡単です。

import datetime
from enum import IntEnum, auto

# 曜日の列挙型
class Week(IntEnum):
    Monday = 0
    Tuesday = auto()
    Wednesday = auto()
    Thursday = auto()
    Friday = auto()
    Saturday = auto()
    Sunday = auto()


# 今日の取得
today = datetime.date.today()

# 日付の曜日(整数)の出力
print(f'日付: {today}, 曜日{today.weekday()}')

# 曜日の判定と出力
if Week.Monday == today.weekday():
    print(Week.Monday.name)
elif Week.Tuesday == today.weekday():
    print(Week.Tuesday.name)
elif Week.Wednesday == today.weekday():
    print(Week.Wednesday.name)
elif Week.Thursday == today.weekday():
    print(Week.Thursday.name)
elif Week.Friday == today.weekday():
    print(Week.Friday.name)
elif Week.Saturday == today.weekday():
    print(Week.Saturday.name)
elif Week.Sunday == today.weekday():
    print(Week.Sunday.name)

実行結果

日付: 2022-05-18, 曜日2
Wednesday

列挙型を使う方法を解説【Enum・IntEnum】

strftimeメソッドを使う

dateオブジェクトやdatetimeオブジェクトがサポートしているstrftime()を使うことで曜日を取得することができます。引数に書式コードの%a、または%Aを使うことでロケールの曜日名を文字列で取得することができます。

import datetime

today = datetime.date.today()
print(today.strftime('%a'))

print(today.strftime('%A'))

実行結果

Wed
Wednesday

localeモジュールのlocale.setlocale()locale.LC_TIME(時刻を書式化するためのロケールカテゴリ)を設定することで日本語やその他の表記で曜日を取得することができます。

import datetime
import locale

# ロケールを日本語に変更
locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')

today = datetime.date.today()
print(today.strftime('%a'))
print(today.strftime('%A'))

# ロケールをフランス語に変更
locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8')

today = datetime.date.today()
print(today.strftime('%a'))
print(today.strftime('%A'))

実行結果

水
水曜日
Mer
Mercredi
ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

View Comments

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago