Sommaire
- Où l'on décide de la date de Pâques
- Bon, et Excel, dans tout ça ?
- LibreOffice Calc : la délicate position d'outsider
Bonjour Nal,
En cette période de Pâques, laisse-moi te conter une histoire.
Depuis des temps ancestraux, les hommes fêtent le retour du printemps. Pour les juifs, la fête prend le nom de Pessah. Pour les chrétiens, elle correspond non seulement au retour du printemps mais aussi (surtout) à la résurrection du Christ, rien que ça. Ce qui en fait la fête la plus importante du calendrier chrétien, bien plus que la naissance dudit Christ. Après tout, le fait qu'il soit né n'est pas ce qui le distingue (tout le monde naît un jour), mais ce n'est pas tout le monde qui ressuscite après être mort.
Il était donc crucial de fêter Pâques, et de fêter Pâques correctement.
Où l'on décide de la date de Pâques
En 321, les prêtres en vue du moment font une petite réunion d'équipe à Nicée, sur la côte d'Azur en Turquie, pour se mettre d'accord sur quelques points litigieux. C'est très ISO9001, ça s'appellera le concile de Nicée. Ils y décideront entre autres de la date de Pâques. Puisque la résurrection est réputée avoir eu lieu, selon les Évangiles, au moment de la Pâque juive, on décide de copier plus ou moins la Pâque juive. En plus, c'est cool, parce que ça permet de gommer les célébrations des juifs sous les célébrations des chrétiens, et vu qu'on n'aime pas trop les juifs, si on peut les invisibiliser, c'est pas plus mal1.
Ce cher Jules
Le calendrier en vigueur à l'époque est le calendrier julien. Il a été mis en place sous le règne de Jules César, et pour lui rendre hommage, d'ailleurs, son mois de naissance sera d'ailleurs renommé Iulius (juillet) après sa mort.
Il s'agit d'un calendrier solaire, ce qui signifie que les durées y sont calculées sur la base de la rotation de la Terre autour du Soleil. En théorie, un cycle complet correspond à une rotation complète autour du Soleil. Problème, la Terre ne tourne pas autour du Soleil en un nombre entier de jours, mais en 365,25 jours. On y décide donc que, tous les 4 ans, on ajoutera un jour intercalaire pour tenir compte de ce décalage. C'est l'invention de l'année bissextile, et par souci de simplicité, seront bissextiles toutes les années multiples de 4. C'est facile à calculer, et comme 100 est divisible par 4, on peut ne tenir compte que des deux derniers chiffres pour calculer si une année est bissextile.
Ça marche pas trop mal, mais un problème se pose à nos conciliers de Nicée : la Pâque juive est basée sur un calendrier lunaire, ou plutôt luno-solaire, avec l'ajout d'un mois intercalaire sur décision d'un groupe de prêtres. Et ça, on n'en veut pas : d'une part, ça met un boxon pas possible dans le calcul des échéances de contrats, et d'autre part, on ne veut pas confier à des humains la tâche de fixer arbitrairement une date aussi sacrée que Pâques. Pâques sera donc fixée au premier dimanche suivant la première pleine lune du printemps, soit la première pleine lune suivant l'équinoxe. Et comme mesurer l'équinoxe, c'est un poil lourd, on convient qu'il survient à date fixe (logique, puisqu'on est en calendrier solaire) : le 21 mars.
1258 ans fast forward
En 1579, on s'aperçoit d'un petit souci : l'équinoxe ne tombe pas juste. En fait, il s'est décalé de 10 jours, donc au lieu de tomber le 21 mars, l'équinoxe tombe le 11 mars. Et ça, c'est grave ! On risque de fêter la résurrection d'un Christ déjà ressuscité depuis une bonne lune ! En fait, le problème est le suivant : l'année ne dure pas 365,25 jours comme le croyaient les romains, mais 365,2425 jours. La solution est donc de supprimer quelques années bissextiles : 3 années bissextiles sur 400 disparaissent donc. C'est le calendrier grégorien, du nom du pape qui le met en vigueur : Grégoire XIII. Pour choisir quelles années bissextiles faire sauter, on décide que les années séculaires (celles dont le numéro se finit par 00) seront bissextiles si et seulement si elles sont multiples de 400. Ça supprime effectivement 3 années bissextiles sur 400.
Oh, et on efface aussi 10 jours pour rattraper le décalage. Le lendemain du 4 octobre 1582 sera le 15 octobre 1582.
Bon, autant le dire tout de suite, ça ne prend pas forcément super bien. Déjà, on est en pleines guerres de religion, il y a des catholiques, des protestants, des juifs, et en Orient, des orthodoxes, donc choisir un calendrier, c'est choisir son camp. Noter que sans ce décalage de 10 jours, la réforme aurait sans doute été nettement moins conflictuelle : après tout, elle aurait été promulguée en 1582 pour une application concrète en 1700, soit 118 ans pour la mettre en place : ça va. Mais petit à petit, les occidentaux vont s'accorder sur le fait qu'on ne peut pas laisser le calendrier dériver, et que c'est quand même pratique de ne pas avoir à faire de conversions de dates entre pays. On s'accorde donc sur le calendrier le plus précis à l'époque : le calendrier grégorien.
Il y aura d'autres tentatives de réforme calendaire : citons notamment le calendrier révolutionnaire, mais aucune n'a réellement pris.
Oh, et les orthodoxes dans tout ça ? Disons-le tout net : une réforme calendaire instaurée par un pape romain, c'est niet. Ils resteront sur leur calendrier julien. Du moins jusqu'en 1923.
Le calendrier julien révisé
Si le calendrier julien était l'azerty du calendrier, le calendrier grégorien serait le bépo, et le calendrier julien révisé serait l'Ergo-L. En effet, une année astronomique ne fait pas 365,2425 jours, mais est plus proche de 365,2422. C'est le serbe Milutin Milanković qui propose donc en 1923 un calendrier révisé : au lieu de compter comme bissextiles toutes les années multiples de 400, il propose qu'une année soit bissextile si et seulement si le reste de la division du numéro de l'année par 900 vaut 200 ou 600. Il se trouve que ça colle avec le calendrier grégorien de 1601 à 2800, ce qui est pas trop mal. C'est actuellement le calendrier qui donne la meilleure approximation de l'année astronomique.
L'auteur est serbe, il n'est pas pape, donc ça passe : la moitié des églises orthodoxes adoptent le calendrier révisé. L'autre moitié reste au calendrier julien. Point amusant : lorsque l'église orthodoxe d'Ukraine déclare son indépendance de celle de Moscou à la suite de la guerre en Ukraine, elle passe au calendrier julien révisé (alors que celle de Moscou était au calendrier non révisé). Choisir son calendrier, c'est choisir son camp.
Noter qu'en occident, on reste au calendrier grégorien, mais que ça ne devrait rien changer au cours des 774 prochaines années, donc bon. Et si les occidentaux se débrouillent bien, il n'y aura plus d'humains en 2800 pour compter les années.
Bon, et Excel, dans tout ça ?
L'algo simpl(ist)e pour savoir si une année est bissextile est de juste regarder si le millésime est divisible par 4. Après tout, il marche dans 99,25% des cas. C'est donc celui que semblent avoir implémenté les devs d'Excel. Comment le vérifier ? Facile :
- Lancer Excel
- Dans une cellule (mettons A1), entrer la date du 28 février 1900 dans la locale adaptée (en français, 28/02/1900).
- Dans une autre cellule (mettons A2), entrer la date du premier mars (01/03/1900)
- Dans une autre cellule, calculer la soustraction : =A2-A1
- Excel affiche 2, comme s'il existait un 29 février 1900.
Excel utilise le calendrier julien !
Alors on pourrait être tenté de considérer les devs Excel comme des abrutis infoutus de chercher "calendrier grégorien" sur Wikipédia. On n'aurait pas forcément tort, mais je me permets de suggérer une autre hypothèse. La première version d'Excel date de 1985. À l'époque, la rapidité d'un algo était encore plus cruciale que son exactitude dans ce qui était considéré comme un cas limite. Calculer le reste de la division par 4 de deux chiffres, c'était ultrarapide. La contrepartie, c'était une erreur de 1 jour pour une année il y a 85 ans.
Et ensuite ? Pourquoi ne pas avoir corrigé le bug dans les versions ultérieures ? Eh bien, pour la rétrocompatibilité. On peut faire beaucoup de reproches à Microsoft, mais un élément central de leurs logiciels, c'est la rétrocompatibilité : ce qui a tourné avec une version doit tourner avec les suivantes. Une fois qu'on a commencé à tourner en calendrier julien, passer en calendrier grégorien ferait buguer tout un paquet de feuilles Excel qui ont pu corriger ce bug par elles-mêmes. Il est plus sûr de garder le bug. Noter qu'Excel ne fournit pas, par défaut, de fonction qui le force à calculer en calendrier grégorien.
LibreOffice Calc : la délicate position d'outsider
Dans LibreOffice, il n'y a pas de contrainte de rétrocompatibilité. Faire le test énoncé plus haut dans LOCalc donne bien 1 : LOCalc calcule en calendrier grégorien. Mais !
- Faites le test, enregistrez votre tableur (au format ods ou autre, peu importe)
- Ouvrez-le avec Excel : le bug est revenu !
- Enregistrez-le dans Excel et rouvrez-le dans LibreOffice Calc : vous avez de nouveau la valeur 2. Y compris en forçant un recalcul des valeurs.
Autrement dit, LibreOffice ne réimplémente pas le bug d'Excel. Mais lorsqu'une feuille a été ouverte dans Excel, LibreOffice est forcé d'assurer la compatibilité… Et d'implémenter le bug. Noter qu'Excel n'a pas cette politesse : il ne tient aucun compte du fait qu'un tableur ait été ouvert (ou même créé) sous LibreOffice : même si la feuille est au format ods, il reste en calendrier julien. Y compris pour des documents créés très récemment, où la question de la rétrocompatibilité est complètement caduque.
-
Précisons à toutes fins utiles que ce paragraphe est écrit du point de vue des prêtres de l'époque. N'allez pas me prêter des pensées antisémites que je n'ai pas. Moi je voulais juste contextualiser un bug dans Excel. ↩
# Passionnant !
Posté par Serge Julien . Évalué à 7 (+5/-0).
Merci pour toutes ces informations !
Sinon :
…fallait oser, ce qui m'a inspiré le titre du présent commentaire ;-)
[^] # Re: Passionnant !
Posté par Liorel . Évalué à 2 (+0/-0).
Je n'ai pas "osé", parce que je ne l'avais pas remarqué. Mais effectivement, joli jeu de mots involontaire ;)
Ça, ce sont les sources. Le mouton que tu veux est dedans.
# Rétrocompatibilité à nuancer tout de même.
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . Évalué à 1 (+1/-2).
À chaque passage de version, j’entend des romuliens râler sur leurs périphériques et logiciels qui ne fonctionnent plus. Pas vous ?
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace
[^] # Re: Rétrocompatibilité à nuancer tout de même.
Posté par groumly . Évalué à 5 (+3/-0).
Non.
[^] # Re: Rétrocompatibilité à nuancer tout de même.
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Surtout que la dite rétrocompatibilité est souvent du flan qui ravi les fans
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Corruption ISO
Posté par Benjamin Henrion (site web personnel) . Évalué à 5 (+3/-0).
Grâce au rachat des organismes de standardisation ISO par Microsoft, on arrive a même mettre tout ça dans un standard ISO, c'est dingue ce qu'on arrive à faire quand on a de la thune.
https://linuxfr.org/news/open-xml-en-force
"Certaines propositions d'OOXML sont purement et simplement des reprises de bugs dans la suite Microsoft Office. Par exemple, OOXML demande que l'année 1900 soit considérée comme bissextile, entrant en contradiction avec toutes les normes actuelles sur la représentation des dates ;"
# Un peu d'espoir ....
Posté par totof2000 . Évalué à 4 (+2/-0).
Ca donne un peu d'espoir pour l'adoption d'IPV6 …
Par contre je ne pense pas qu'on se mettra tous d'accord de la même façon sur l'adoption d'un environnement desktop unique sur Linux … Mais peut-être arriverons-nous à s'accorder sur le meilleur éditeur qui soit : VI.
[^] # Re: Un peu d'espoir ....
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Oh vii
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Un peu d'espoir ....
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Oh vii
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.