Nota: El PO dice en los comentarios, "que estaba buscando el pasado Lunes ". Considero que esto significa que estamos buscando el último lunes que ocurrió estrictamente antes de hoy.
El cálculo es un poco difícil de realizar correctamente utilizando solo el módulo datetime
(especialmente teniendo en cuenta la interpretación anterior del "pasado lunes" y si desea evitar cliché if-statements
). Por ejemplo, si today
es un lunes como 2013-12-23
,
today - DT.timedelta(days=today.weekday())
rendimientos 2013-12-23
, que es el mismo día que today
(no el pasado lunes).
La ventaja de usar el dateutil module es que no tiene que hacer cálculos mentales complicados ni forzar al lector a hacer lo mismo para obtener la fecha correcta. dateutil
lo hace todo por usted:
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
Tenga en cuenta que se necesita para garantizar que days=-1
past_monday
es un día diferente que today
.
¿Vienes el lunes o el lunes pasado? –
Estaba buscando el pasado lunes – Joe