Sujet : Curiosité avec datetime
De : dominique.sextant (at) *nospam* orange.fr.invalid (Dominique)
Groupes : fr.comp.lang.pythonDate : 08. Apr 2024, 17:54:16
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <uv13v9$3jck7$1@dont-email.me>
User-Agent : Mozilla Thunderbird
Bonjour,
Je découvre datetime. Je suis étonné par le traitement de l'entrée en vigueur du calendrier grégorien. Mon script est très simple :
print('Nombre de jours entre deux dates')
t=input('Date de départ de la forme jj-mm-aaaa hh:mm:ss ')
t1=input('Date d\'arrivée de la forme jj-mm-aaaa hh:mm:ss ')
match='%d-%m-%Y %H:%M:%S'
tc=datetime.strptime(t,match)
tc1=datetime.strptime(t1,match)
print(tc1-tc)
et la sortie :
Nombre de jours entre deux dates
Date de départ de la forme jj-mm-aaaa hh:mm:ss 4-10-1582 0:0:0
Date d'arrivée de la forme jj-mm-aaaa hh:mm:ss 15-10-1582 0:0:0
11 days, 0:00:00
Il ne devrait y avoir qu'un unique jour entre les deux dates. Datetime serait incapable de traiter le changement de calendrier ? Je suppose que oui, à la lecture de la documentation (
https://docs.python.org/3/library/datetime.html) :
class datetime.date
An idealized naive date, assuming the current Gregorian calendar always was, and always will be, in effect.
Bon, soit. Je tente avec Time de astropy. Même résultat :
Le 4 / 10 / 1582 à 0 h 0 correspond au jour julien (JD) : 2299149.5
Ainsi qu'au jour julien modifié (MJD) -100851.0
et
Le 15 / 10 / 1582 à 0 h 0 correspond au jour julien (JD) : 2299160.5
Ainsi qu'au jour julien modifié (MJD) -100840.0
J'ai toujours, à tort, 11 jours d'écart.
Mon analyse est-elle bonne, à savoir que tant datetime que astropy traitent mal ce changement de calendrier ? Pour être franc, j'ai un peu de mal à le croire et je tends à penser que je dois me tromper, mais où... ?
Merci et belle fin de journée,
-- DominiqueEsto quod es