Обратный расчет имеет больше магических чисел для вашего развлечения:
ужно конвертировать из стандартагригорианский дата дляюлианский номер дня
Я не видел ничего задокументированного в C #, чтобы сделать это напрямую, но я нашел много постов (в то время как поиск в Google), предлагающих использоватьToOADate.
Документация поToOADate не предлагает это в качестве действительного метода преобразования для юлианских дат.
Может кто-нибудь уточнить, будет ли эта функция выполнять преобразование точно, или, возможно, более подходящий метод для преобразования DateTime в строку в формате Юлиана.
Этот предоставляет мне ожидаемое число при проверке противСтраница Юлианского Дня Википедии
public static long ConvertToJulian(DateTime Date)
{
int Month = Date.Month;
int Day = Date.Day;
int Year = Date.Year;
if (Month < 3)
{
Month = Month + 12;
Year = Year - 1;
}
long JulianDay = Day + (153 * Month - 457) / 5 + 365 * Year + (Year / 4) - (Year / 100) + (Year / 400) + 1721119;
return JulianDay;
}
Тем не менее, это без понимания используемых магических чисел.
Спасибо
Рекомендации:
Метод DateTime.ToOADate