Dalla versione 5.20.x.xx LogicLab supporta tutte le funzioni di gestione data ed ora richieste dalla norma CEI EN 61131-3 nella Parte 3: Linguaggi di programmazione. Per un elenco delle funzioni rimandiamo al manuale LogicLab. Nella libreria eLLabMathsLib forniamo funzioni e blocchi funzioni per la gestione della data e dell’ora.
IsLeapYear, is leap year
Fornendo il valore di anno la funzione ritorna una variabile BOOL con indicazione se l’anno è bisestile. FALSE: Non è bisestile, TRUE: Bisestile.
Descrizione
Year (UINT) Valore anno.
La funzione ritorna una variabile (BOOL) FALSE: Non è bisestile, TRUE: Bisestile.

DayOfYearGet, returns the day of year
Fornendo una data la funzione ritorna una variabile UINT con indicazione del giorno dell’anno.
Descrizione
YDate (DATE) Valore Data.
La funzione ritorna una variabile (UINT) con l’indicazione del giorno dell’anno.

Esempi
Come utilizzare gli esempi.
Esempio di utilizzo funzioni gestione Data/Ora.
LogicLab (Ptp201, ST_DateTimeFcts)
PROGRAM ST_DateTimeFcts
VAR
IsLeap : ARRAY[0..3] OF BOOL; (* Is leap year *)
DOYear : ARRAY[0..3] OF UINT; (* Day of year *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_DateTimeFcts"
// *****************************************************************************
// Here some day of year calculation.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// LEAP YEAR
// -------------------------------------------------------------------------
// Here some years are checked is leap or not.
IsLeap[0]:=IsLeapYear(1970); //Not leap year
IsLeap[1]:=IsLeapYear(1995); //Not leap year
IsLeap[2]:=IsLeapYear(2000); //Leap year
IsLeap[3]:=IsLeapYear(2010); //Not leap year
// -------------------------------------------------------------------------
// DAY OF YEAR
// -------------------------------------------------------------------------
// Example how to calculate the day of year of a defined Date.
DOYear[0]:=DayOfYearGet(CONCAT_DATE(2000, 12, 31)); //31/12/2000 -> 366
DOYear[1]:=DayOfYearGet(CONCAT_DATE(2001, 1, 1)); //1/1/2001 -> 1
DOYear[2]:=DayOfYearGet(CONCAT_DATE(2001, 12, 31)); //31/12/2001 -> 365
DOYear[3]:=DayOfYearGet(CONCAT_DATE(2021, 6, 15)); //15/06/2021 -> 166
// [End of file]