Vai all indice del manuale di programmazione
Tipo:
Funzione
Libreria LogicLab:
eLLabMathsLib
Libreria Codesys:
Non disponibile
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 in GDate una Data/Ora Gregoriana la funzione ritorna il valore di giorno giuliano.
Descrizione
GDate (DATE_AND_TIME) Data/Ora gregoriana.
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, ST_DateTimeToJDay)
PROGRAM ST_DateTimeToJDay
VAR
SValue0 : STRING[ 20 ]; (* String value *)
SValue1 : STRING[ 20 ]; (* String value *)
SValue2 : STRING[ 20 ]; (* String value *)
SValue3 : STRING[ 20 ]; (* String value *)
SValue4 : STRING[ 20 ]; (* String value *)
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.
JDay[0]:=DateTimeToJDay(CONCAT_DT(1999, 12, 31, 23, 59, 59));
eTO_JUNK(SysVsnprintf(ADR(SValue0), SIZEOF(SValue0), ADR('%.10lf'), LREAL_TYPE, ADR(JDay[0])));
// Date: 01/01/2000 00:00:00 is Giulian day:2451544.5000000000.
JDay[1]:=DateTimeToJDay(CONCAT_DT(2000, 1, 1, 0, 0, 0));
eTO_JUNK(SysVsnprintf(ADR(SValue1), SIZEOF(SValue1), ADR('%.10lf'), LREAL_TYPE, ADR(JDay[1])));
// Date: 01/01/2000 11:59:59 is Giulian day:2451544.9999884367.
JDay[2]:=DateTimeToJDay(CONCAT_DT(2000, 1, 1, 11, 59, 59));
eTO_JUNK(SysVsnprintf(ADR(SValue2), SIZEOF(SValue2), ADR('%.10lf'), LREAL_TYPE, ADR(JDay[2])));
// Date: 01/01/2000 12:00:00 is Giulian day:2451545.0000000000.
JDay[3]:=DateTimeToJDay(CONCAT_DT(2000, 1, 1, 12, 0, 0));
eTO_JUNK(SysVsnprintf(ADR(SValue3), SIZEOF(SValue3), ADR('%.10lf'), LREAL_TYPE, ADR(JDay[3])));
// Date: 01/01/2000 23:59:59 is Giulian day:2451545.4999884367.
JDay[4]:=DateTimeToJDay(CONCAT_DT(2000, 1, 1, 23, 59, 59));
eTO_JUNK(SysVsnprintf(ADR(SValue4), SIZEOF(SValue4), ADR('%.10lf'), LREAL_TYPE, ADR(JDay[4])));
// [End of file]