87 votes

Retrouvez la date de lundi avec Python

Comment puis-je trouver la date du lundi précédent, basée sur la date actuelle en utilisant Python ? J'ai pensé que peut-être je pourrais utiliser : datetime.weekday() pour le faire, mais je suis coincé.

Je veux essentiellement trouver la date du jour et la date du lundi pour construire une requête de plage de dates en django en utilisant : created__range=(start_date, end_date).

190voto

ChristopheD Points 38217
>>> import datetime
>>> today = datetime.date.today()
>>> today + datetime.timedelta(days=-today.weekday(), weeks=1)
datetime.date(2009, 10, 26)

Quelques mots d'explication :

Prenez la date d'aujourd' hui. Soustrayez le nombre de jours qui se sont déjà écoulés cette semaine (cela vous donne 'dernier' lundi). Ajoutez une semaine.

Éditer : Ce qui précède est pour 'le lundi prochain', mais puisque vous cherchiez 'le lundi dernier' vous pourriez utiliser

today - datetime.timedelta(days=today.weekday())

24voto

diegueus9 Points 4616

Je pense que la façon la plus simple est d'utiliser python-dateutil comme ceci :

from datetime import date
from dateutil.relativedelta import relativedelta, MO

today = date.today()
last_monday = today + relativedelta(weekday=MO(-1))
print last_monday

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X