1. ホーム
  2. python

[解決済み] 直近の前営業日(Python

2023-03-16 02:12:21

質問

以下のように 営業日 を現在の日付から引く必要があります。

私は現在、常に直近の営業日に実行される必要があるいくつかのコードを持っています。つまり、月曜日から金曜日までなら今日かもしれませんが、土曜日または日曜日なら、週末の前の金曜日に設定する必要があります。現在、私はいくつかのかなり 不格好な のコードでこれを行います。

 lastBusDay = datetime.datetime.today()
 if datetime.date.weekday(lastBusDay) == 5:      #if it's Saturday
     lastBusDay = lastBusDay - datetime.timedelta(days = 1) #then make it Friday
 elif datetime.date.weekday(lastBusDay) == 6:      #if it's Sunday
     lastBusDay = lastBusDay - datetime.timedelta(days = 2); #then make it Friday

もっと良い方法はないのでしょうか?

timedeltaに、例えば暦日ではなく平日で動作するように指示することはできますか?

どのように解決するのですか?

pandasを使う!

import datetime
# BDay is business day, not birthday...
from pandas.tseries.offsets import BDay

today = datetime.datetime.today()
print(today - BDay(4))

今日は9月26日(木)なので、次のような出力になります。

datetime.datetime(2013, 9, 20, 14, 8, 4, 89761)