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

    【Unity】イメージやテキストを等間隔で配置する方法

    UnityでイメージやテキストなどのUI…

    3日 ago

    【Python】フォーマット時の書式の設定

    この記事では、Pythonで文字列に値を…

    5か月 ago

    【Python】変数にデフォルト値を渡す方法

    この記事では、変数にデフォルト値を渡す方…

    5か月 ago

    【Python】明示的に例外(エラー)を発生させる方法

    この記事では、Pythonで例外(エラー…

    5か月 ago

    【C言語】ファイルを読み書きする方法

    この記事では、C言語でファイルを読み書き…

    6か月 ago