Hinweis: Das OP sagt in den Kommentaren: " Ich habe nach dem vergangenen Montag gesucht ". Ich verstehe das so, dass wir nach dem letzten Montag suchen, der streng vor heute stattgefunden hat.
Die Berechnung ist etwas schwierig, nur mit dem datetimeModul richtig zu machen (insbesondere angesichts der obigen Interpretation von "vergangenen Montag" und wenn Sie klobige vermeiden möchten if-statements). Wenn zum Beispiel todayein Montag ist, wie z 2013-12-23.
today - DT.timedelta(days=today.weekday())
Rückkehr 2013-12-23, die am selben Tag ist wie today(nicht am vergangenen Montag).
Der Vorteil der Verwendung des Dateutil-Moduls besteht darin, dass Sie keine kniffligen mentalen Berechnungen durchführen oder den Leser dazu zwingen müssen, dasselbe zu tun, um das richtige Datum zu erhalten. dateutilmacht alles für dich:
import dateutil.relativedelta as rdelta
import datetime as DT
today = DT.date(2013, 12, 23)
past_monday = today + rdelta.relativedelta(days=-1, weekday=rdelta.MO(-1))
print(past_monday)
next_monday = today + rdelta.relativedelta(days=1, weekday=rdelta.MO(+1))
print(next_monday)
Beachten Sie, dass dies days=-1erforderlich ist, um sicherzustellen, dass past_mondayes sich um einen anderen Tag als handelt today.