Deutsch   English   Français   Italiano  
<uv13v9$3jck7$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Dominique <dominique.sextant@orange.fr.invalid>
Newsgroups: fr.comp.lang.python
Subject: =?UTF-8?Q?Curiosit=C3=A9_avec_datetime?=
Date: Mon, 8 Apr 2024 17:54:16 +0200
Organization: A noiseless patient Spider
Lines: 51
Message-ID: <uv13v9$3jck7$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 08 Apr 2024 15:54:18 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="99d96eb37162077561db8e47041c6458";
	logging-data="3781255"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/4rVzv3tOcHGZS9RnZL4DDfbVfJePAny4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:j76uALV7CI6b0Xns2L3qYFOrH10=
Content-Language: fr
Bytes: 2593

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,

-- 
Dominique
Esto quod es