Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > fr.comp.lang.python > #4183
| From | Dominique <dominique.sextant@orange.fr.invalid> |
|---|---|
| Newsgroups | fr.comp.lang.python |
| Subject | Re: Curiosité avec datetime |
| Date | 2024-04-09 03:15 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <uv24rt$3r0sd$1@dont-email.me> (permalink) |
| References | <uv13v9$3jck7$1@dont-email.me> <66141bf8$0$3239$426a74cc@news.free.fr> |
Le 08/04/2024 à 18:31, yves a écrit :
> c'est que datetime ne traite pas du tout ce changement de calendrier. Le
> module assume que le calendrier Gregorien a toujours été en vigueur.
>
> Ce qui n'est pas surprenant à la lecture de la page Wikipédia :
>
> <https://fr.wikipedia.org/wiki/
> Passage_du_calendrier_julien_au_calendrier_gr%C3%A9gorien>
>
> En résumé, la page explique que la date de changement de calendrier a été
> variable selon les endroits.
Bonjour Yves,
Oui, l'application du calendrier grégorien s'est étalée dans le temps.
Je crois que le dernier pays à l'avoir adopté est la Russie en 1917. Je
suis toutefois étonné que datetime tout comme astropy ne tiennent pas
compte de ce changement de calendrier.
Avec un script un peu plus « rustique » écrit à partir de « Calculs
astronomiques à l'usage des amateurs » de Jean Meeus, l'écart de 1 jour
s'obtient bien :
-------------------------------------------------------------
j=int(input("Jour "))
m=int(input("Mois "))
y=int(input("Année "))
def julien(y,m,d,b):
jj=int(365.25*y)+int(30.6001*(m+1))+d+1720994.5+b
return jj
mois=m
annee=y
heure=int(input("Heure "))
minutes=float(input("Minutes "))
d=j+(heure+minutes/60)/24
temps=y+m/100+j/10000
a=int(y/100) ##calculs (a et b) intermédiaires pour tenir compte du
changement de calendrier
b=2-a+int(a/4)
if temps<1582.1015: ##la date cherchée est-elle antérieure au 15/10/1582
b=0 ##neutralisation de b si nous sommes dans le calendrier julien
if m<3:
y-=1
m+=12
jule=julien(y,m,d,b)
print ("Le ",j,"/",mois,"/",annee,"à ",heure,"h",minutes," correspond au
jour julien : ",round(jule,4))
-------------------------------------------------------------
J'obtiens les bons résultats :
Le 4 / 10 / 1582 à 0 h 0 correspond au jour julien : 2299159.5
Le 15 / 10 / 1582 à 0 h 0 correspond au jour julien : 2299160.5
La différence est bien d'un jour.
Bonne journée,
--
Dominique
Esto quod es
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Curiosité avec datetime Dominique <dominique.sextant@orange.fr.invalid> - 2024-04-08 17:54 +0200
Re: Curiosité avec datetime yves <yves@free.invalid> - 2024-04-08 16:31 +0000
Re: Curiosité avec datetime Dominique <dominique.sextant@orange.fr.invalid> - 2024-04-09 03:15 +0200
Re: Curiosité avec datetime yves <yves@free.invalid> - 2024-04-09 14:14 +0000
csiph-web