Если вы хотите конвертировать между n
различными календарями и реализовали алгоритмы для перехода из любого одного формата в любой другой формат, вам потребуется n^2 - n
алгоритмы преобразования.Однако если вместо этого написаны алгоритмы для преобразования любого формата календаря в один базовый формат календаря, а затем написаны алгоритмы для преобразования из базового формата в любой другой формат, вам нужно только написать 2(n-1)
алгоритмы.
Все эти форматы календаря представляют одно и то же время.Самый основной способ представления времени - это количество времени, прошедшее с некоторой контрольной точки, так что это наиболее целесообразно в качестве базового формата.Это именно то, что юлианская дата , количество дней с 1 января 4713 г. до н.другой формат, однако любой специализированный алгоритм преобразования, по сути, собирается взять введенную дату, преобразовать ее в какой-то нейтральный переход между представлениями даты и затем преобразовать это в желаемый формат календаря.Однако, поскольку юлианская дата представляет собой простой формат с одним числом, это практически то же самое, что преобразование в юлианскую дату, а затем преобразование в какой-либо другой формат, поэтому прирост производительности будет незначительным.Кроме того, преобразования календаря, вероятно, не являются узким местом производительности любого приложения, поэтому выжимание из них максимально возможной производительности, вероятно, не является хорошим использованием чьего-либо времени.