DateTimeToJDay, converts Date/Time to Julian day

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Gestione Data/Ora
  6. DateTimeToJDay, converts Date/Time to Julian day

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 l'indirizzo di una struttura Data/Ora la funzione ritorna il valore di giorno giuliano.

Function
CODESYS: Non disponibile
LogicLab: eLLabMathsLib

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

La funzione ritorna una variabile (LREAL) con il valore di giorno giuliano.

Esempi

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

LogicLab (Ptp179)
PROGRAM ST_DateTimeToJDay
VAR
    DateTime : DATETIMESTRUCT; (* Date/Time structure *)
    JDay : ARRAY[0..4] OF LREAL; (* Julian day *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_DateTimeToJDay"
// *****************************************************************************
// Example of some Gregorian dates converted to Julian day.
// -----------------------------------------------------------------------------

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

    DateTime.Day:=31; DateTime.Month:=12; DateTime.Year:=1999; DateTime.Hour:=23; DateTime.Minute:=59; DateTime.Second:=59;
    JDay[0]:=DateTimeToJDay(ADR(DateTime));

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

    DateTime.Day:=1; DateTime.Month:=1; DateTime.Year:=2000; DateTime.Hour:=0; DateTime.Minute:=0; DateTime.Second:=0;
    JDay[1]:=DateTimeToJDay(ADR(DateTime));

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

    DateTime.Day:=1; DateTime.Month:=1; DateTime.Year:=2000; DateTime.Hour:=11; DateTime.Minute:=59; DateTime.Second:=59;
    JDay[2]:=DateTimeToJDay(ADR(DateTime));

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

    DateTime.Day:=1; DateTime.Month:=1; DateTime.Year:=2000; DateTime.Hour:=12; DateTime.Minute:=0; DateTime.Second:=0;
    JDay[3]:=DateTimeToJDay(ADR(DateTime));

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

    DateTime.Day:=1; DateTime.Month:=1; DateTime.Year:=2000; DateTime.Hour:=23; DateTime.Minute:=59; DateTime.Second:=59;
    JDay[4]:=DateTimeToJDay(ADR(DateTime));

// [End of file]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 2 Settembre 2020