Re: Écart entre deux dates.

Liste des GroupesRevenir à fcl python 
Sujet : Re: Écart entre deux dates.
De : damien.wyart (at) *nospam* free.fr (Damien Wyart)
Groupes : fr.comp.lang.python
Date : 23. May 2022, 13:44:14
Autres entêtes
Organisation : Serveur de News Free
Message-ID : <628b738e$0$18399$426a74cc@news.free.fr>
References : 1
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/29.0.50
* Dominique <zzz@aol.com.invalid> in fr.comp.lang.python:
Il nous est demandé de calculer l'écart entre deux dates en utilisant
dateutil.

J'ai écrit ces quelques lignes, mais je les trouve compliquées et peu
élégantes. Je n'ai rien trouvé de probant dans la bibliothèque
dateutil :

from dateutil import parser
date1=parser.parse('2022-06-10')
date2=parser.parse('2022-01-01')
print((date1-date2).days)
160

Est-il possible de l'améliorer ? De plus, je ne vois pas très bien à
quoi correspond la fonction parser (et parse dans la foulée...)

Comme indiqué par Nicolas, parse permet d'analyser une chaîne pour en
extraire un object DataTime. La bibliothèque standard permet déjà de le
faire mais de manière moins souple et avec moins de support de formats  
multiples. parser n'est pas une fonction mais permet juste de "ranger"
les différents noms dans le module dateutil. En arrière-plan, il
correspond aussi à une classe Parser, interne au module.    
                                   
Comme Nicolas l'a également proposé, on peut très bien tout faire en     
Python standard (je montre deux façons de créer des DateTime) :
                       
from datetime import date                                    
                                    
d1 = date.fromisoformat('2022-06-10')
d2 = date(2022, 1, 1)
print(d1-d2)

-> donne "160 days, 0:00:00"

pour cet exercice, plus que parse, c'est peut-être relativedelta, du
module dateutil, qui est pertinent :

from dateutil.relativedelta import relativedelta
print(relativedelta(d1, d2))

-> donne "relativedelta(months=+5, days=+9)" qui est peut-être plus
   facile à appréhender pour un humain :)

--
DW

Date Sujet#  Auteur
22 May 22 * Écart entre deux dates.6Dominique
23 May 22 +* Re: Écart entre deux dates.3Nicolas
23 May 22 i`* Re: Écart entre deux dates.2Damien Wyart
23 May 22 i `- Re: Écart entre deux dates.1Nicolas
23 May 22 `* Re: Écart entre deux dates.2Damien Wyart
23 May 22  `- Re: Écart entre deux dates.1Dominique

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal