Розглядаючи рішення для іншого питання, я здивувався, чи можна використовувати Calendar
клас .NET для реалізації календаря, який не базувався на земних конвенціях.
Наприклад, день Марса приблизно на 2,7% довший, ніж день тут на Землі:
Конвенція, що використовувалась на сьогоднішній день проектами посадки космічних кораблів, полягала в тому, щоб відстежувати місцевий сонячний час за допомогою 24-годинного "Марсового годинника", коли години, хвилини та секунди на 2,7% перевищують їх стандартну тривалість (Земля).
Чи є хороший спосіб реалізувати MarsCalendar
таким чином, що довжина другого відрізняється від стандарту GregorianCalendar
, і , таким чином , мати можливість використовувати DateTime
об'єкти на його основі для всіх стандарт AddDays()
, AddHours()
і т.д. функції? (Примітка: В ідеалі рішення - якщо воно існує - було б застосовним до будь-якої форми планетарного об'єкта, для якого можна визначити як "1 день", так і "1 рік" однакової довжини. Хоча Марс є чудовим прикладом, хоча )