Wie komme ich letzten Freitag?

Der folgende Code sollte letzten Freitag, 16:00:00 Uhr, zurückgegeben werden. Aber es kehrt zurückFreitag der Vorwoche. Wie kann man das beheben?

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)

Upd. Ich benutze jetzt den folgenden Ansatz - ist es der beste?

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. Nur um ein Beispiel zu geben. Nehmen wir an, das ist heute5. Oktober 2012. Falls die aktuelle Zeit kleiner oder gleich ist16:00 es sollte zurückkehren28. September 2012, Andernfalls -5. Oktober 2012.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage