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 in GDate una Data/Ora Gregoriana la funzione ritorna il valore di giorno giuliano.
Descrizione
| Parametro | Tipo | Descrizione |
|---|---|---|
| GDate | DATE_AND_TIME | Data/Ora gregoriana. |
| Out | LREAL | 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]