2 points par GN⁺ 2024-10-31 | 1 commentaires | Partager sur WhatsApp
  • Les fuseaux horaires sont complexes, mais comme les ordinateurs doivent les implémenter, leur étrangeté reste limitée à un cadre fini.
    • Asia/Kathmandu a un décalage inhabituel par rapport à l’UTC.
    • Africa/Casablanca s’adapte mal au modèle des fuseaux horaires, donc il est géré en dur.
    • America/Nuuk passe à l’heure d’été à -01:00.
    • Africa/Cairo et America/Santiago passent à l’heure d’été à 24:00 (et non à 00:00).
    • Australia/Lord_Howe a la règle d’heure d’été la plus étrange.

PGXIIREAM : le pape Grégoire XIII gouverne tout

  • La majeure partie du monde utilise un système horaire fondé sur le calendrier grégorien.
  • Le calendrier grégorien est très utile pour maintenir la position du soleil cohérente tout au long de l’année.
  • L’UTC est la formalisation officielle moderne du calendrier grégorien, et le monde entier règle son heure sur cette base.

Les secondes intercalaires n’ont pas d’importance

  • La rotation de la Terre ralentit, et on ajoute des secondes intercalaires pour compenser.
  • On peut les ignorer, car les langages de programmation ne représentent pas une 61e seconde.
  • Les fournisseurs cloud résolvent le problème en ralentissant l’horloge pendant les secondes intercalaires.

Fuseaux horaires étranges

Asia/Kathmandu a un décalage inhabituel

  • Le Népal a 5 heures et 45 minutes d’avance sur l’UTC.
  • Les ordinateurs le savent grâce à la base de données des fuseaux horaires de l’IANA.

Les chaînes comme PDT ou CET n’ont pas de sens

  • Les identifiants de fuseau horaire peuvent être ambigus, et de nombreux fuseaux partagent le même identifiant.

Comment représente-t-on les fuseaux horaires avec heure d’été ?

  • Les règles de transition vers l’heure d’été sont complexes, et les ordinateurs calculent l’heure locale à partir de celles-ci.

Africa/Casablanca et Asia/Gaza suivent la lune, alors que les fuseaux horaires suivent le soleil

  • Le Maroc et Gaza ajustent l’heure d’été en fonction du ramadan, ce qui est géré en dur.

America/Nuuk passe à l’heure d’été à -1:00

  • Le Groenland commence l’heure d’été au même moment que l’Europe, mais en heure locale cela se produit à -1:00.

America/Santiago et Africa/Cairo basculent à 24:00

  • Ces fuseaux passent à l’heure d’été à 24:00, ce qui signifie le passage au jour suivant.

Australia/Lord_Howe a la transition d’heure d’été la plus étrange

  • L’île Lord Howe applique une transition d’heure d’été de 30 minutes.

Résumé de GN⁺

  • Les fuseaux horaires sont complexes, mais comme les ordinateurs doivent les implémenter, leur étrangeté reste limitée à un cadre fini.
  • Australia/Lord_Howe est le fuseau horaire le plus singulier avec sa transition d’heure d’été de 30 minutes.
  • Cet article aide à comprendre la complexité des fuseaux horaires et peut intéresser les programmeurs.
  • Un projet aux fonctionnalités similaires est tzdb.

1 commentaires

 
GN⁺ 2024-10-31
Avis sur Hacker News
  • La partie la plus amusante de la base de données tz est qu’elle contient une estimation de l’instant du Big Bang, et qu’elle est conçue pour ne pas calculer les changements de fuseau horaire survenant avant le Big Bang.
    Le message de commit de https://github.com/eggert/tz/commit/b22d459a367f4d01b10f6f6b... disait aussi, en substance, « ne générons pas de timestamps antérieurs au Big Bang, ils sont physiquement douteux », et peu après, un commit séparé a également interdit les secondes intercalaires antérieures au Big Bang.

    • Il existait autrefois une longue page de manuel sur Linux/Unix date qui traitait de la signification des dates anciennes.
      Avec des exemples autour du XVe siècle, elle racontait qu’un roi aimait telle semaine ou tel mois et avait ordonné de le répéter, ou qu’un autre roi détestait telle semaine et l’avait supprimée du calendrier. C’était une lecture assez éclairante, mais je n’arrive plus à la retrouver.
    • Cela paraît être une décision assez pragmatique. C’est une bonne façon d’éviter à l’avance, entre contributeurs, des débats inutiles du genre discuter du sexe des anges.
      Autrement dit, la conclusion est : « les instants antérieurs au Big Bang sont hors du périmètre de cette bibliothèque ; donc si un algorithme ne produit de mauvaises valeurs qu’avant le Big Bang, cet algorithme est acceptable et n’a pas besoin d’être amélioré ou remplacé ».
    • C’est vraiment excellent, mais séparément, je suis un peu sceptique quant à la tentative de tzdb de couvrir aussi la période avant l’epoch Unix.
      L’utilité par rapport aux bugs potentiels ne me paraît pas énorme, et l’essentiel de la complexité désordonnée de tzdb se trouve dans zic. Parfois, j’ai l’impression qu’il aurait mieux valu que zic ne soit pas un artefact sur lequel d’autres puissent dépendre.
    • C’est un easter egg amusant de la base de données TZ. Je n’en avais jamais entendu parler, mais je me demande à quelle fréquence on a vraiment besoin de calculer des données de fuseau horaire aussi anciennes.
      J’aimerais que les fuseaux horaires eux-mêmes disparaissent avant que la théorie des fuseaux horaires ne devienne obsolète.
  • À mon avis, le fuseau horaire le plus étrange est Africa/Addis_Ababa. Les Éthiopiens sur place, eux, n’utilisent pas vraiment cette façon de faire.
    Localement, on décale l’heure de 6 heures : le cycle AM commence à l’aube, c’est-à-dire à 6 h du matin, et le cycle PM commence au coucher du soleil, à 18 h.
    https://en.wikipedia.org/wiki/Time_in_Ethiopia

    • C’est une pratique courante dans toute l’Afrique de l’Est, y compris au Kenya. La nuit se termine à 6 h du matin, et 7 h devient la première heure de la journée, saa moja.
      De même, la journée se termine à 18 h, thenashara. Intuitivement, c’est bien plus logique que l’horloge anglophone, et comme c’est intégré dans la langue, les confusions d’heure sont rares.
    • Le calcul du temps en Éthiopie est globalement particulier.
      https://en.wikipedia.org/wiki/Ethiopian_calendar
      Le calendrier éthiopien se compose de 12 mois de 30 jours et d’un 13e mois formé de 5 ou 6 jours épagomènes.
    • C’est très proche de la façon dont les Romains comprenaient le temps. Je me demande si c’est une vieille trace de l’époque où l’Afrique du Nord était composée de plusieurs provinces.
      https://en.wikipedia.org/wiki/Roman_timekeeping
    • Pour un pays proche de l’équateur, ce n’est pas si irrationnel comme manière de définir le cycle d’une journée.
    • Le Japon utilise aussi un système similaire dans des contextes comme les établissements qui ferment après minuit : https://en.wikipedia.org/wiki/Date_and_time_notation_in_Japa...
      Dans le monde anglophone aussi, autrefois, l’année changeait le 25 mars : https://en.wikipedia.org/wiki/Calendar_(New_Style)_Act_1750#...
      Techniquement, aucun des deux n’entre dans le champ de tzdb. tzdb traite l’heure civile, pas les calendriers ni les autres modes de calcul.
  • L’étrangeté de Asia/Jerusalem vient du fait que l’heure d’été y est fortement liée à la question de la séparation entre religion et État. Les personnes religieuses veulent que les journées de travail soient pratiques par rapport aux fêtes qui commencent au coucher du soleil.
    Ainsi, jusqu’au milieu des années 2000, pendant des décennies, l’heure d’été résultait chaque année de négociations entre partis religieux et partis laïcs, et les dates de changement n’étaient décidées qu’au dernier moment, ce qui causait souvent des problèmes.
    Il existe encore une exception visant à éviter que l’heure d’été ne se termine à Rosh HaShanah, ce qui semble rendre les règles futures complexes.

    • Les avantages de l’heure d’été étant limités, je me demande pourquoi elle n’a pas été purement et simplement abolie, surtout dans un pays situé relativement au sud.
      Si l’UE finit par réussir à l’abolir, ils suivront peut-être.
    • C’est à cause de Pessa’h. Le grand repas festif appelé Seder se prolonge après minuit, et c’est aussi un événement très important pour les enfants.
      On ne veut donc pas que l’heure d’été rende encore plus tardif un événement qui se termine déjà tard. De plus, pour le jour de jeûne de Yom Kippour, on voulait que le jeûne se termine une heure plus tôt. En essayant de s’aligner sur ces dates, la période d’heure d’été devenait trop courte, ce qui nécessitait des négociations.
    • Il n’y a plus d’exception. IDT a été prolongée en 2013 jusqu’au dernier dimanche d’octobre.
  • L’affirmation selon laquelle « les langages de programmation ne peuvent pas représenter une minute de 61 secondes » n’est pas vraie. Quelqu’un a déjà mentionné que Raku prend en charge les secondes intercalaires, et c’est peut-être en partie de ma faute
    La raison est que DateTime.pm, la bibliothèque date/heure la plus populaire de Perl 5, prend en charge les secondes intercalaires, et c’est moi qui ai implémenté ce support en créant DateTime.pm
    Avec le recul, c’était presque certainement une erreur. Presque personne ne s’intéresse aux secondes intercalaires, et cela ne fait que créer des confusions bizarres du genre « pourquoi ajouter 60 secondes n’est-il pas toujours la même chose qu’ajouter 1 minute ? »
    Le code est devenu beaucoup plus complexe, notamment parce qu’il fallait vérifier si second => 60 était valide. Le constructeur accepte des composants temporels et un fuseau horaire arbitraire ; pour consulter la table des secondes intercalaires, il faut donc convertir en UTC, mais cette conversion elle-même se retrouve, pour des raisons historiques, mêlée à des valeurs incluant des secondes intercalaires
    C’est devenu un énorme bazar pour un bénéfice minuscule, et comme la bibliothèque standard date/heure de Raku semble aussi beaucoup emprunter à DateTime.pm de Perl 5, j’ai l’impression qu’elle a hérité d’une partie des mêmes mauvais choix de conception

    • C’est bien de l’avoir implémenté ainsi, puis d’avoir pu revenir plus tard sur une solution plus élégante
      Je me demande quel était le raisonnement initial. Était-on trop absorbé par le problème ? Quand on est trop proche d’un problème et qu’on se concentre dessus trop longtemps, le plaisir de le réparer avant qu’il ne casse peut parfois conduire à ce genre de situation
    • Raku possède une classe Instant
      Elle est définie, en substance, comme « un instant précis mesuré en secondes atomiques et en fractions de celles-ci, qui n’est lié à aucune epoch et n’en a pas connaissance »
  • Plus tôt cette année, j’ai dû écrire une fonction qui, à partir d’une adresse américaine, trouvait l’heure locale actuelle. L’approche naïve consiste à associer statiquement l’État au fuseau horaire, mais il existe pas mal d’exceptions qui empêchent de faire cela
    Dans cette application, le coût et la rapidité étaient importants ; j’ai donc acheté pour quelques dollars un CSV qui associait tous les ZIP codes américains à un décalage UTC, au respect ou non de l’heure d’été, etc.
    Comme pytz attend des noms de fuseaux horaires IANA, j’ai finalement dû faire manuellement la correspondance entre les informations de décalage et d’heure d’été et des fuseaux horaires précis ; les territoires américains d’outre-mer et les bases militaires ont aussi rendu nécessaires des sémantiques étranges comme les fuseaux Etc
    [1] https://en.wikipedia.org/wiki/Tz_database#Area

    • Le niveau de l’État est une granularité totalement inadaptée. Aux États-Unis, les fuseaux horaires suivent les limites des comtés et des réserves amérindiennes
      Les ZIP codes peuvent probablement suffire, mais il faut être prudent. Si le nombre d’adresses n’est pas trop élevé, une approche plus robuste consiste à faire du géocodage inverse, puis à utiliser une bibliothèque qui obtient l’identifiant IANA à partir des polygones de limites de fuseaux horaires
      https://github.com/RomanIakovlev/timeshape est maintenu par un ancien collègue, et nous avons pu publier en open source une partie du travail que nous avions fait en interne
    • En 1985, alors que j’étais un jeune ingénieur fraîchement sorti de l’université, on m’a confié la tâche de fusionner des données de télémétrie enregistrées sur bandes magnétiques depuis plusieurs sites radar aux États-Unis
      Un ou deux systèmes horodataient les données en heure locale, les autres utilisaient l’UTC. Pour concevoir un algorithme de gestion de l’heure d’été, j’ai acheté un vieux Farmers' Almanac, mais j’ai désespéré en lisant les règles
      Le calendrier contenait les règles nominales de changement d’heure, mais une note indiquait qu’elles avaient été ajustées d’année en année en raison d’interventions du Congrès, et qu’elles continueraient probablement à l’être. J’ai dit à mon chef : « si je pouvais écrire un algorithme capable de prédire les votes futurs du Congrès, je serais milliardaire et j’aurais quitté ce boulot d’ingénieur »
      Je crois qu’au final, j’ai codé les transitions connues les plus récentes ainsi que les règles nominales futures. C’était avant que tout le monde soit connecté au réseau, et le code tournait sur des machines autonomes comme des VAX ; il n’y avait donc pas beaucoup d’autres options
      Fusionner trois sources de données de suivi, chacune avec ses états de validité et de dégradation de la qualité des mesures, était aussi un cauchemar, mais c’était quand même plus facile que de prédire les actions futures du Congrès
    • Une bonne approche consiste à associer les ZIP codes à des fuseaux horaires nommés comme US/Eastern. Ensuite, si l’on a besoin du décalage UTC, on applique ce fuseau à la date concernée avec pytz pour obtenir le décalage
      Les fuseaux horaires nommés ont ceci de particulier qu’ils sont stables. Les fuseaux basés sur un décalage UTC comme -05:00, ou les abréviations comme EST, ne sont pas stables dans le temps pour un lieu donné à cause de l’heure d’été
      Si l’on demande son fuseau horaire à quelqu’un en lui proposant des décalages ou des abréviations, tout le monde finit par être perdu
    • J’ai fait quelque chose de similaire plus tôt cette année : j’ai utilisé un service de géolocalisation pour convertir l’adresse en latitude/longitude, puis j’ai retrouvé le fuseau horaire à partir de cette latitude/longitude. J’avais prévu un raccourci pour les États à fuseau horaire unique
      Pour la conversion latitude/longitude → fuseau horaire, j’ai utilisé cette bibliothèque Python : https://github.com/jannikmi/timezonefinder
      La source des données semblait elle aussi d’assez bonne qualité : https://github.com/evansiroky/timezone-boundary-builder/rele...
    • Il faut vraiment faire attention aux identifiants Etc, surtout si l’on envisageait d’exposer tous les identifiants tels quels aux utilisateurs
      Le fichier contient un commentaire disant : « POSIX considère comme positifs les fuseaux à l’ouest de Greenwich, mais beaucoup de gens s’attendent à ce que les valeurs positives soient à l’est de Greenwich. Par exemple, TZ='Etc/GMT+4' utilise l’abréviation -04 et désigne un fuseau 4 heures en retard sur UT, donc à l’ouest de Greenwich, alors que beaucoup de gens s’attendent à un fuseau 4 heures en avance sur UT, à l’est »
  • Le fuseau horaire de la Palestine est aussi assez étrange
    https://en.wikipedia.org/wiki/Time_in_the_State_of_Palestine
    Il existe une heure d’été, mais les dates ne sont pas fixes : le gouvernement annonce chaque année les dates de début et de fin. Parfois, l’annonce arrive moins d’une semaine à l’avance, ce qui ne peut que provoquer toutes sortes de problèmes intéressants.

    • Deux personnes vivant au même endroit physique peuvent ainsi suivre des heures courantes différentes selon leur identité ethnique et géopolitique
      Les dates de début et de fin de l’heure d’été en Israël et en Palestine ne coïncident pas forcément
    • Je ne sais pas si c’est encore le cas aujourd’hui, mais le Brésil faisait aussi ça autrefois. À cause de ça, j’ai failli rater un avion
    • C’est bien mentionné dans l’article, et c’est lié au ramadan
    • Même sans entrer dans la politique, j’ai du mal à comprendre pourquoi on mettrait l’heure d’été en priorité. Il semble y avoir bien plus de sujets de préoccupation
  • Dire qu’une heure d’été décalée de 30 minutes au lieu d’une heure est le « fuseau horaire le plus étrange » me paraît mettre la barre très bas
    Presque tout le reste est plus étrange. Antarctica/Troll paraît clairement plus bizarre, et les fuseaux horaires du Maroc et de Gaza ont au moins des règles d’un autre type, au point qu’on ne peut pas les exprimer avec les systèmes existants. Les fuseaux qui changent la veille d’une date donnée, et qui figurent sur la liste noire d’Apple, sont eux aussi assez étranges pour casser des choses
    Je suis d’accord à propos des secondes intercalaires. C’est presque de la culture générale, plus qu’un savoir utile que les programmeurs devraient connaître. Les ordinateurs les lissent, et ne savent même pas quand elles se produisent. On peut parfaitement les oublier
    Cela dit, certains pays sont passés d’une façon d’ignorer les secondes intercalaires à une façon de les prendre en compte ; ainsi, il y a quelques décennies, le passage en Australie de GMT+x à UTC+x a marqué la transition entre leur ignorance et leur inclusion. Le fait que ce soit presque universellement ignoré est peut-être plutôt une bonne chose

    • Je suis globalement d’accord pour dire que les secondes intercalaires relèvent de la culture générale
      Mais il y a toujours quelque chose d’un peu drôle quand une grande organisation dit : « nos serveurs ont une précision temporelle inférieure à la milliseconde grâce à la synchronisation GPS et à des cartes PCIe maison avec horloge atomique au rubidium », tout en disant en même temps : « nous lissons les secondes intercalaires sur une journée, donc en pratique ça ne nous dérange pas si l’heure du serveur est fausse de ±0,5 seconde »
      [1] https://engineering.fb.com/2021/08/11/open-source/time-appli...
      [2] https://engineering.fb.com/2020/03/18/production-engineering...
    • Les dates du ramadan ne sont pas une valeur bien connue. Elles reposent sur le fait que la lune soit effectivement visible depuis une région donnée de la Terre
      Par exemple, si le ciel est très couvert, on ne voit pas la lune, où qu’elle soit. Cela pose problème quand il faut implémenter un calendrier pour administrer un pays
      De nombreux pays qui ont officiellement adopté le calendrier islamique utilisent des dates approximatives calculées à l’avance, fondées sur la visibilité prévue depuis un lieu donné. Le calendrier islamique n’est donc pas vraiment unique : il ressemble plutôt à deux calendriers, un calendrier islamique d’observation et un calendrier prédictif, tous deux dépendant du lieu où l’observation réelle ou prévue est effectuée
      Je ne sais pas comment le Maroc ou Gaza procèdent
    • Antarctica/Troll n’est pas si étrange. En réalité, on y utilise l’heure du Cap pendant le court été, et l’heure de la Norvège le reste du temps
      Sauf que l’heure de la Norvège utilise justement l’heure d’été
    • Les secondes intercalaires relèvent globalement de la culture générale, mais elles deviennent cruciales pour les applications où plusieurs parties doivent se mettre exactement d’accord sur l’ordre temporel. L’exemple typique est celui des transactions financières
      Beaucoup de marchés ont fermé pendant les secondes intercalaires, et beaucoup de banques interrompent encore toutes les transactions lors des changements d’heure locale afin de réduire les risques d’erreur
      Même dans des applications qui s’en soucient peu, il y a eu un nombre surprenant de bugs liés aux secondes intercalaires, et le CGPM avait de bonnes raisons de décider leur suppression
      https://en.wikipedia.org/wiki/Leap_second#Other_reported_sof...
    • Je venais chercher Troll. À ma connaissance, c’est le seul endroit avec une heure d’été d’hiver, et son nom lui vaut des points bonus
  • Excellent article sur les acrobaties des logiciels de fuseaux horaires. Ils sont vraiment assez flexibles.
    Si tout n’est qu’un ensemble fini de décalages automatisés, il n’y a aucune raison pour que les règles d’heure d’été se limitent forcément à des ajustements de 60 minutes.
    Un pays pourrait-il décider d’utiliser toute l’année un décalage qui varie en continu ? La table de correspondance des décalages deviendrait beaucoup plus longue, mais cela pourrait « résoudre » l’heure d’été. Comme l’ajustement se ferait par petites touches constantes, on ne le remarquerait pas, un peu comme les secondes intercalaires.
    Les personnes qui dépendent de montres analogiques ne les régleraient peut-être plus toujours dans le même sens.

    • Depuis que la synchronisation des horloges des appareils électroniques est devenue courante, je propose à qui veut bien l’entendre d’avancer de 10 minutes le premier dimanche de chaque mois pendant 6 mois, puis de reculer de 10 minutes le premier dimanche de chaque mois pendant les 6 autres mois.
      Un changement de 10 minutes une fois par mois est beaucoup plus facile à absorber, passe presque inaperçu, et si on le rate, ce n’est pas aussi grave que d’avoir une heure de décalage.
    • En suivant cette voie, la conclusion logique serait de supprimer complètement la notion de fuseau horaire et de revenir à l’heure solaire locale.
    • Vous ignorez la manière la plus simple de « résoudre » l’heure d’été.
      Il suffit d’arrêter l’heure d’été. Personnellement, je préfère une heure standard permanente à une heure d’été permanente, mais tant qu’on peut arrêter de changer les horloges deux fois par an, ça me va.
    • L’Inde est en UTC+5:30 et n’applique pas l’heure d’été, ce qui rend ses interactions avec le reste du monde intéressantes.
      La Chine, bien sûr, est célèbre pour n’avoir qu’un seul fuseau horaire malgré son immense étendue, ce qui crée des situations intéressantes aussi bien en interne qu’avec l’extérieur.
    • Théoriquement, on peut le représenter avec la tzdb. Bien sûr, cela poserait des problèmes.
      Une hypothèse vraiment importante, qui n’apparaît pas clairement dans le format de données TZif, est que lorsqu’on passe de l’heure locale à l’heure UTC, il n’y a au maximum que deux possibilités.
      Beaucoup de logiciels reposent sur cette hypothèse ; par exemple, java.time.LocalDateTime possède withLaterOffsetAtOverlap() : https://docs.oracle.com/javase/8/docs/api/?java/time/LocalDa...
      Cela suppose implicitement que lorsque le sens de 2 h 30 du matin est ambigu, les seules solutions possibles sont les deux offsets avant et après l’heure d’été. Si un fuseau horaire reculait une première fois à 2 h, puis encore à 2 h 15, produisant ainsi trois solutions ou plus, beaucoup de choses ne pourraient pas le représenter.
  • Ce que j’aime dans la base de données tz, c’est qu’elle est techniquement un diff de diff.
    Elle stocke la manière dont l’écart entre chaque fuseau horaire et UTC a varié au fil de l’histoire, on peut donc y voir un diff^2. Mais comme la base de données tz reçoit aussi des mises à jour, ces commits sont des diffs de diffs de diffs, autrement dit des diff^3.
    On peut aller plus loin. Il y a un journal des modifications, et ce journal est stocké dans git ; un commit sur le journal des changements de tz est donc une modification de la liste de modifications de la liste de modifications de la liste de modifications par rapport à UTC, soit un diff^4.

    • Vous avez oublié qu’UTC, et plus largement la mesure du temps elle-même, est aussi un diff.
    • Un diff de diff, ce sont juste deux diffs. Ce n’est pas un produit de diffs.
  • Pour moi, le cadrage essentiel est que presque toutes les dates/heures sont en réalité un ensemble de règles de correspondance sous surveillance.
    On peut estimer combien de secondes il faudra avant qu’une correspondance se déclenche, mais on ne peut pas en être totalement certain avant que cela se produise réellement, et dans certains cas cela peut même ne jamais se produire exactement.
    L’autre moitié consiste ensuite à reconvertir l’estimation de delta « cela devrait arriver dans X secondes à partir de maintenant » en « à ce moment-là, l’horloge de votre fuseau horaire devrait afficher Y ».
    Il ne faut pas oublier de suivre en permanence quel fuseau horaire contrôle l’événement, et dans quel fuseau horaire il est affiché.
    [1] Les estimations en UTC peuvent être décalées vers l’avant ou l’arrière d’une seconde intercalaire. TAI est plus sûr, mais cela pourrait changer si quelqu’un découvrait quelque chose de nouveau et d’intéressant qui modifie le comportement des atomes de césium.
    [0] Par exemple, un pays peut disparaître et son fuseau horaire avec lui. Ou bien l’horloge peut sauter de 1 h 00 à 2 h 00, de sorte que l’intervalle de 1 h 30 à 2 h 00 n’arrive jamais exactement à cause de l’heure manquante.