Подтвердить что ты не робот

Внедрение неземного календаря

Как я искал решения для другого вопроса, мне стало интересно, можно ли использовать .NET Calendar для реализации календарь, который не был основан на земных конвенциях.

Например, день Марса составляет около 2.7% больше, чем день здесь, на Земле:

Конвенция, используемая в настоящее время проектами самолета-спутника, заключалась в том, чтобы отслеживать местное солнечное время с использованием 24-часовых "часов Марса", по которым часы, минуты и секунды на 2.7% больше, чем их стандартные (Земля) продолжительности.

Есть ли хороший способ реализовать MarsCalendar, чтобы длина секунды отличалась от стандартной GregorianCalendar и, следовательно, могла использовать объекты DateTime на основе этого для всех стандартных AddDays(), AddHours() и т.д. функции? (Примечание. В идеале решение - если оно существует - применимо к любой форме планетарного объекта, для которого можно определить как "1 день", так и "1 год" согласованной длины. например, хотя)

4b9b3361

Ответ 1

В пространстве имен глобализации (например, JapaneseCalendar) существует несколько классов, не относящихся к григорианскому календарю, полученных из System.Globalization.Calendar. Вы должны иметь возможность реализовать свои собственные. Я бы взломал образец, но в классе Calendar есть 16 абстрактных методов...

Вы даже можете просто получить свой класс из GregorianCalendar и просто переопределить метод GetMilliseconds(DateTime), возвращая базовое возвращаемое значение умноженное на 1.027d.

Ответ 2

Ответ НЕТ.

Календарь - это продукт культуры.
В примере даже здесь на земле есть несколько календарей..
для некоторых культур день начинается и заканчивается на восходе солнца для других, это закат.

Что вы можете сделать, так это решить, какая какая-то универсальная константа в контролируемой среде должна быть исходной точкой отсчета.. например, как производится атомный вахта.. это может помочь вам в наименьшее время... и на этом вы можете построить масштаб других мер, таких как второй, час, день и т.д.
Но вам это действительно не нужно. Земля, которая вращает солнце, уже является естественным источником, чтобы получить то же самое и не требует никаких усилий по строительству. Он даст вам одинаковые результаты с удовлетворительной точностью и имеет около 6 миллиардов человек QA'ing это непрерывно.

Какова дата или время на Марсе? это то же самое, что и на земле.

Если вы хотите "взорвать" единство того, как мы понимаем календарь, теоретизируя, что каждый небесный объект может иметь свое местное время... нет проблем - но вы должны признать, что локальные времена не будут иметь общего общего общее правило, они будут арбитром и связаны с "культурой" или каким-либо другим выбором арбитра для каждого объекта, а это означает, что разбор будет ад для вычисления и должен быть для каждого объекта.
(это не значит, что я против самой идеи)