JDayToDateTime, converts Julian day to Date/Time

Home / Knowledge Base / Manualistica / Programmazione IEC 61131-3 / Gestione Data/Ora / JDayToDateTime, converts Julian day to Date/Time

Il giorno giuliano (Julian Day, JD) è il numero di giorni passati dal mezzogiorno del lunedì 1º gennaio 4713 a.C.[1] Il sistema dei giorni giuliani è stato progettato per fornire agli astronomi un singolo sistema di date che potesse essere usato per lavorare con differenti calendari, e per unificare differenti cronologie storiche, giacché esso non presenta la difficoltà di anni bisestili, cambi di calendario, eccetera.

Fornendo come parametro il giorno giuliano e l'indirizzo di una struttura Data/Ora la funzione compila i campi della struttura con i valori ricavati dal valore di giorno giuliano.

Function
CODESYS: Non disponibile
LogicLab: eLLabMathsLib

JDay (LREAL) Valore giorno giuliano.

DateTime (@DATETIMESTRUCT) Indirizzo allocazione struttura DATETIMESTRUCT di ritorno definizione Data/Ora.

La funzione ritorna una variabile (BOOL) FALSE:Errore conversione, TRUE:Conversione eseguita.

Esempi

Come utilizzare gli esempi.
Nel seguente esempio sono eseguite alcune conversioni di date.

LogicLab (Ptp179)
PROGRAM ST_JDayToDateTime
VAR
    i : UDINT; (* Auxiliary variable *)
    DateTime : ARRAY[0..4] OF DATETIMESTRUCT; (* Date/Time structure *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_JDayToDateTime"
// *****************************************************************************
// Example of some Julian day converted to Gregorian date.
// -----------------------------------------------------------------------------

    // Giulian day:2451544.4999884367 is Date: 31/12/1999 23:59:59.

    i:=JDayToDateTime(LREAL#2451544.4999884367, ADR(DateTime[0]));

    // Giulian day:2451544.5000000000 is Date: 01/01/2000 00:00:00.

    i:=JDayToDateTime(LREAL#2451544.5000000000, ADR(DateTime[1]));

    // Giulian day:2451544.9999884367 is Date: 01/01/2000 11:59:59.

    i:=JDayToDateTime(LREAL#2451544.9999884367, ADR(DateTime[2]));

    // Giulian day:2451545.0000000000 is Date: 01/01/2000 12:00:00.

    i:=JDayToDateTime(LREAL#2451545.0000000000, ADR(DateTime[3]));

    // Giulian day:2451545.4999884367 is Date: 01/01/2000 23:59:59.

    i:=JDayToDateTime(LREAL#2451545.4999884367, ADR(DateTime[4]));

// [End of file]

Ti è stato utile questo articolo ?