Mientras buscaba soluciones para otra pregunta, me pregunté si era posible usar la Calendar
clase .NET para implementar un calendario que no se basara en las convenciones terrestres.
Por ejemplo, el día de Marte es aproximadamente un 2,7% más largo que un día aquí en la Tierra:
Una convención utilizada por los proyectos de aterrizaje de naves espaciales hasta la fecha ha sido realizar un seguimiento de la hora solar local utilizando un "reloj de Marte" de 24 horas en el que las horas, minutos y segundos son un 2,7% más largos que su duración estándar (terrestre).
¿Hay alguna buena manera de poner en práctica una MarsCalendar
forma que la longitud de un segundo es diferente de la norma GregorianCalendar
, y por lo tanto será capaz de utilizar DateTime
objetos basados en él durante toda la norma AddDays()
, AddHours()
etc. funciones? (Nota: Idealmente, una solución, si existe, sería aplicable a cualquier forma de objeto planetario para el que sea posible definir tanto "1 día" como "1 año" de longitudes consistentes. Marte es un gran ejemplo, aunque )