Converti DateTime in Julian Date in C # (ToOADate Safe?)

Ho bisogno di convertire da una data gregoriana standard a un numero del giorno giuliano .

Non ho visto nulla di documentato in C # per farlo direttamente, ma ho trovato molti post (mentre su Google) suggerendo l’uso di ToOADate .

La documentazione su ToOADate non suggerisce questo come un metodo di conversione valido per le date di Julian.

Qualcuno può chiarire se questa funzione eseguirà la conversione in modo accurato, o forse un metodo più appropriato per convertire DateTime in una stringa in formato Julian.


Questo mi fornisce il numero atteso quando convalidato contro la pagina di Julian Day di Wikipedia

    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; } 

    Tuttavia, questo è senza una comprensione dei numeri magici utilizzati.

    Grazie


    Riferimenti:

    • DateTime.ToOADate Method