Alors que je cherchais des solutions pour une autre question, je me suis demandé s'il était possible d'utiliser la Calendar
classe de .NET pour implémenter un calendrier qui n'était pas basé sur les conventions terrestres.
Par exemple, la journée de Mars est environ 2,7% plus longue qu'une journée ici sur Terre:
Une convention utilisée par les projets d'atterrissage d'engins spatiaux à ce jour a été de garder une trace de l'heure solaire locale en utilisant une "horloge de Mars" de 24 heures sur laquelle les heures, minutes et secondes sont 2,7% plus longues que leurs durées standard (Terre).
Est - il un bon moyen de mettre en œuvre une MarsCalendar
telle que la longueur d'une seconde est différente de la norme GregorianCalendar
, et donc être en mesure d'utiliser les DateTime
objets en fonction pour tous les standards AddDays()
, AddHours()
etc. fonctions? (Note: Idéalement, une solution - s'il en existe une - serait applicable à toute forme d'objet planétaire pour laquelle il est possible de définir à la fois "1 jour" et "1 an" de longueurs cohérentes. Mars est un excellent exemple, bien que )