2022年10月26日水曜日

Python で直前の特定の曜日の日付を取得する

Python で直前の特定の曜日の日付を取得したいことがあったのですが、結局必要なくなり使わなかったので備忘録として。

import datetime

# 直前の水曜日の日付を取得
week = [-5, -6, 0, -1, -2, -3, -4]
today = datetime.date.today()
weekday = today.weekday()
reduce_days = week[weekday]
date = today + datetime.timedelta(reduce_days)
date = datetime.datetime.strftime(date, '%Y-%m-%d')

weekday() で曜日を取得(月曜日が0で、日曜日が6)して、配列に当てて目的の曜日まで日数を引いています。

上のコードであれば直前の水曜日の日付を取得します。実行が水曜日であれば当日になります。

水曜日に実行した際にひとつ前の水曜日を取得したければ次のようになります。

week = [-5, -6, -7, -1, -2, -3, -4]

違う曜日を取得するには配列の数字をずらします。例えば、月曜日を取得したい場合は次のようになります(実行が月曜日なら当日)。

week = [0, -1, -2, -3, -4, -5, -6]

曜日で何かやる場合、ここからの変形でいろいろ作れそうです。


ブログに書いておくと後から探しやすいし、(少なくとも自分にとっては)読解しやすいのでいいですね。







***


昨日は夕焼けがきれいでした。

ハウスのビニールを張り替えてからだいぶ経つので、ところどころダメージが目立ちはじめました。ごまかしごまかしあと数年使えればと思っていますが……果たして。

ここからどこまで使えるかが、小さな経営の勝負所でございます。


Twitter (@nkkmd) 日々更新中です。