Hinweis: Die OP sagt in den Kommentaren "Ich war für die Vergangenheit Montag ". Ich nehme an, wir suchen nach dem letzten Montag, der genau vor heute stattfand.
Die Berechnung ist ein wenig schwierig, nur mit dem datetime
Modul richtig zu bekommen (vor allem angesichts der obigen Interpretation von "vergangenen Montag" und wenn Sie klobig vermeiden möchten if-statements
). Zum Beispiel, wenn today
ist ein Montag wie 2013-12-23
,
today - DT.timedelta(days=today.weekday())
kehrt 2013-12-23
, die am selben Tag wie today
ist (nicht die Vergangenheit Montag).
Der Vorteil der Verwendung der dateutil module ist, dass Sie keine komplizierten mentalen Berechnungen durchführen müssen, noch zwingen Sie den Leser, das gleiche zu tun, um das richtige Datum zu bekommen. dateutil
tut alles für Sie:
import dateutil.relativedelta as rdelta
import datetime as DT
today = DT.date(2013, 12, 23) # Monday
past_monday = today + rdelta.relativedelta(days=-1, weekday=rdelta.MO(-1))
print(past_monday)
# 2013-12-16
next_monday = today + rdelta.relativedelta(days=1, weekday=rdelta.MO(+1))
print(next_monday)
# 2013-12-30
Beachten Sie, dass days=-1
benötigt wird, um sicherzustellen, dass past_monday
ein anderer Tag ist als today
.
Kommender Montag oder vergangener Montag? –
Ich war auf der Suche nach der Vergangenheit Montag – Joe