Bonjour,
Le 22/05/2022 à 16:15, Dominique a écrit :
> Bonjour,
>
> Dans Linux référence spécial Python, il est proposé des exercices que je
> fais.
>
> 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...)
Je ne suis pas allé voir la documentation, mais visiblement, la fonction
parser.parse() convertit une chaine de caractères en date (au format
utilisé par dateutil).
>
> L'aide (help('parser')) ne m'éclaire pas beaucoup...
help('parser') (avec des cotes) renvoie l'aide d'une fonctionnalité
interne de Python :
>>> help('parser')
Help on built-in module parser:
NAME
parser - This is an interface to Python's internal parser.
La bonne syntaxe est sans les cotes :
help(parser)
>
> J'ai évité astropy avec les calculs de jours juliens. Ça aurait ajouté
> de la complication, je pense.
A noter que la bibliothèque standard de Python permet de manipuler du
temps et des dates :
>>> import datetime
>>> dt1 = datetime.datetime.now()
>>> dt2 = datetime.datetime.now()
>>> dt2 - dt1
datetime.timedelta(0, 5, 799467)
>>> d1 = datetime.datetime.now().date()
>>> d2 = datetime.datetime.now().date()
>>> d2 - d1
datetime.timedelta(0)
>>> t1 = datetime.datetime.now().time()
>>> t2 = datetime.datetime.now().time()
>>> t2 -t1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'datetime.time' and
'datetime.time'
De façon surprenante, la différence sur des temps n'est pas implémentée.
Nicolas
>
> En vous remerciant,
>
> Dominique