以下のコードは、先週の金曜日の16:00:00に戻るはずです。ただし、前週の金曜日に戻ります。それを修正する方法は?
now = datetime.datetime.now()
test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4, weeks=-1))
test = test.replace(hour=16,minute=0,second=0,microsecond=0)
更新 私は今、次のアプローチを使用しています-それは最良のアプローチですか?
now = datetime.datetime.now()
if datetime.datetime.now().weekday() > 4:
test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4))
else:
test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4, weeks=-1))
test = test.replace(hour=16,minute=0,second=0,microsecond=0)
Upd2。例を挙げると。今日が2012年10月5日であると仮定しましょう。現在の時刻が16:00以下の場合は、2012年9月28日を返す必要があります。それ以外の場合は、2012年10月5日を返します。