Мне нужно преобразовать из стандартной григорианской даты в число Юлиана.
Я ничего не видел на С#, чтобы сделать это напрямую, но я нашел много сообщений (в то время как Googling), предлагая использовать ToOADate.
Документация на ToOADate не предлагает это как действительный метод преобразования для юлианских дат.
Может ли кто-нибудь уточнить, будет ли эта функция выполнять точное преобразование или, возможно, более подходящим способом конвертировать DateTime в форматированную строку Юлиана.
Это дает мне ожидаемое число при проверке с Wikipedia Julian Day страница
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;
}
Однако это не понимает используемые магические числа.
Спасибо
Литература: