Etudes2023-11-29 14:03  4min 30 #2746

Comput temporel

Résumé

Le but est de produire une classe permettant d'obtenir une conversion de dates Terre-Oummo, qui soit réutilisable et serve de référence.

Le travail préliminaire consiste à collecter les données permettant une synchronisation des dates, bien qu'on sache que le flux de temps entre deux points de l'espace soit "illusoire".

Les difficultés qui peuvent être rencontrées permettent de mieux comprendre le fonctionnement d'un comput temporel en terme général. La première est la différence entre le temps calendaire et le temps astronomique, qui divergent et doivent être rectifiés. Les autres problèmes rencontrés sont ceux qui consistent à traduire de manière algorithmique un énoncé dialectique.

Conversions

L'api devra renvoyer un résultat agnostique, sans présumer de ce qui est recherché. En effet lorsque l'Api est interrogée, il n'est que vaguement possible de déterminer si l'utilisateur attend une date ou un intervalle de temps (une durée).

Données

Les unités de temps sur Terre sont :

- 1 seconde
- 1 minute = 60 secondes
- 1 heure = 60 minutes
- 1 jour = 24 heures
- 1 mois = 1/12 d'une année (une classe DateTime permet de fixer un résultat en fonction des mois concernés et des années bisextiles)
- 1 année = 365 jour calendaires, 365.24219 jours astronomiques.

Rien qu'avec cet énoncé on peut supposer les difficultés et erreurs possibles, si par exemple on cumule un résultat calendaire tenant compte des années bissextiles et qu'en plus on ajoute des années astronomiques.

Les unités de temps sur Oummo sont :

- 1 Uiw = 3.0921 minutes (D37-2)
- 1 Xsi = 600 Uiw, 600.0117 Uiw astronomiques
- 1 Xee = 60 Xsi
- 1 Aeon = 6000 Xee calendaires

Les Timestamp

Le Timestamp sur Terre a été fixé au 1 janvier 1970 à 00h00.
Le Timestamp de Oummo est fixé à 1059201330, soit le 26/07/2003 à 06:35:30 (Nr18). Il correspond au passage à la quatrième ère (Aeon).

Entre la fin de la deuxième ère et le début de la troisième, doivent s'ajouter 11750 Xee, qui ont été volontairement exclus du calendrier.

Requêtes

Les différentes requêtes qui peuvent être commandées à l'Api sont les suivantes :

- Date actuelle sur Terre (commande vide) [date]
- Date actuelle sur Oummo (commande vide) [date]
- Date précisée au format Timestamp : 2003-07-09 06:35:30 [date]
- Date ISO 8601 : "P" suivi d'un code YMDHIS tel que P1M6D = "1 month 6 days", P12Y = "12 years". [date]
- chaîne de caractère telle qu'une valeur numérique suivie d'une unité 12 Xee 56 months 4 days : durée
- chaîne de caractère telle qu'une unité est suivie d'une valeur numérique : aeon 2 xee 1230 [date]
- Timespamp en secondes (valeur numérique)

Opérations

Le calcul des dates consiste à appliquer la différence de temps écoulé, littéral ou "strict" (astronomique) en fonction de si on attend comme résultat une date ou une durée.

Il faut noter qu'avec la classe DateTime, toutes les durées renvoyées sont "strictes", ce qui explique l'ajout d'un jour tous les quatre ans en application de la bissextile). Par exemple "douze ans" mesure 12 ans et 3 jours.

Constantes

Une des difficultés a été d'obtenir des calculs qui tombent justes, en raison de l'imprécision du calcul avec des virgules flottantes trop longues.

Curieusement, lorsqu'on a réalisé au l'Uiw était fixé à 185.527 secondes et non 185.526 comme on l'avait calculé d'après la valeur 1 Uiw = 3.0921 secondes, il n'y a plus eu ces problèmes.

Pour être certains que les calculs utilisés à partir des constantes posées soient correctes, une fonction génère ces constantes à partir des seules données connues et fiables, que sont :

- l'Uiw : 315.527 secondes
- le timestamp du passage à l'ère 4 : 1057732530
- la durée de la Blacknight, 11750 xee.

Choix d'un timestamp Oummo (uts)

L'intérêt de choisir un Timestamp Oummo apparaît pour ne pas avoir à revenir se référer à la seule date connue qui soit synchronisée entre Oummo et la Terre, et à simplifier le calcul.

Cette date étant celle du passage à l'ère 4, peut directement être considérée comme le timestamp zéro de Oummo (uts). Mais avec l'inconvénient que la localisation de l'ère 3, qui est charnière, doit à son tour se référer au calcul.

Faire commencer le Uts à l'ère 3 semble être une bonne idée, car à uts-1 on ajoute directement la durée de Blacknight, de 11750 xee astronomiques.

Pour l'instant, l'uts est calé à l'ère zéro théorique, sans Blacknight, uniquement dans le but d'obtenir un earth_uts.

Le earth_uts est le seul élément utile dans tous les calculs. Il correspond à la valeur de l'uts au moment où le timestamp terrien est de zéro, le 1 janvier 1970. Sa valeur est donc fixée à 159237595470 en mode littéral, et à 159240721228 en mode astronomique. La constante est celle du passage à l'ère 4, située au timestamp 1057732530.

 Commenter