La gestione delle date e degli orari è una funzionalità
fondamentale in moltissime applicazioni. Free Pascal e
Lazarus mettono a disposizione strumenti potenti che
consentono di ottenere la data corrente, eseguire calcoli
temporali, formattare le informazioni e confrontare
facilmente date e orari.
Gestione delle
date e degli orari nelle applicazioni
Pubblicato il: 5-7-2026
Ultima Modifica: 5-7-2026
Introduzione
La gestione delle date e degli orari è
una delle funzionalità più utilizzate nello sviluppo di
applicazioni. Quasi ogni programma, infatti, ha la necessità
di conoscere la data corrente, registrare un evento,
calcolare intervalli di tempo o visualizzare informazioni in
un formato leggibile.
Pensiamo ad esempio a:
🗓️ un'agenda elettronica;
📋 un gestionale clienti;
💰 un programma di fatturazione;
📁 un sistema di backup;
📝 un registro delle attività (log);
⏰ un cronometro o un timer.
Il linguaggio Pascal, insieme alle librerie di
Free Pascal e Lazarus, mette a
disposizione numerose funzioni che semplificano queste
operazioni.
In questo articolo vedremo come utilizzare date e orari
nelle proprie applicazioni con esempi pratici.
Il tipo TDateTime
In Free Pascal la maggior parte delle operazioni utilizza
il tipo:
TDateTime
Questo tipo rappresenta contemporaneamente:
📅 la data;
⏰ l'ora.
Internamente è un numero reale:
la parte intera rappresenta il numero di giorni
trascorsi da una data di riferimento;
la parte decimale rappresenta la frazione della
giornata, cioè l'orario.
Fortunatamente non è necessario preoccuparsi di questo
dettaglio: tutte le operazioni vengono gestite
automaticamente dalle librerie.
Le unit da utilizzare
Per lavorare con date e orari è sufficiente includere:
uses
SysUtils, DateUtils;
Le due unit contengono decine di funzioni già pronte.
Ottenere la data e l'ora correnti
La funzione più utilizzata è:
Now
Esempio:
uses
SysUtils;
begin
WriteLn(DateTimeToStr(Now));
end.
Possibile risultato:
05/07/2026 18:45:21
Ottenere solo la data
Per conoscere solamente la data corrente:
WriteLn(DateToStr(Date));
Risultato:
05/07/2026
Ottenere solo l'orario
Per visualizzare esclusivamente l'ora:
WriteLn(TimeToStr(Time));
Risultato:
18:45:21
Salvare una data in una variabile
var
DataCorrente : TDateTime;
begin
DataCorrente := Now;
end;
Da questo momento sarà possibile riutilizzarla in tutto
il programma.
Convertire una data in una stringa
Spesso è necessario mostrare la data all'utente.
var
S : String;
begin
S := DateToStr(Date);
end;
Per data e ora:
S := DateTimeToStr(Now);
Convertire una stringa in data
L'operazione inversa è altrettanto semplice.
var
D : TDateTime;
begin
D := StrToDate('05/07/2026');
end;
Per data e ora:
D := StrToDateTime('05/07/2026
18:45:00');
⚠️ Se la stringa non è valida, verrà generata
un'eccezione. È consigliabile utilizzare le funzioni
TryStrToDate e
TryStrToDateTime quando i dati provengono
dall'utente.
Ogni riga può essere preceduta dalla data e dall'ora
ottenute con Now.
Utilizzare un Timer
Nelle applicazioni grafiche Lazarus è disponibile il
componente TTimer.
Può essere utilizzato per:
⏰ aggiornare un orologio;
📊 aggiornare dati periodicamente;
🔄 eseguire backup automatici;
📡 controllare la connessione di rete;
💾 salvare automaticamente il lavoro.
Ad ogni intervallo viene eseguito l'evento
OnTimer.
Alcune funzioni utili di DateUtils
La unit DateUtils contiene
moltissime funzioni già pronte.
Tra le più utilizzate troviamo:
IncDay
IncMonth
IncYear
DaysBetween
MonthsBetween
YearsBetween
IsLeapYear
StartOfTheMonth
EndOfTheMonth
StartOfTheWeek
EndOfTheWeek
Queste funzioni evitano di dover eseguire calcoli
complessi manualmente.
Errori comuni
Quando si lavora con date e orari è bene prestare
attenzione ad alcuni aspetti.
❌ Salvare le date come semplici stringhe.
❌ Non verificare l'input dell'utente.
❌ Ignorare il formato locale della data.
❌ Effettuare calcoli manuali sui giorni senza utilizzare
le funzioni dedicate.
Utilizzare TDateTime e le funzioni
di DateUtils rende il codice più
semplice, leggibile e meno soggetto a errori.
Conclusione
La gestione delle date e degli orari è una funzionalità
fondamentale in moltissime applicazioni. Free Pascal e
Lazarus mettono a disposizione strumenti potenti che
consentono di ottenere la data corrente, eseguire calcoli
temporali, formattare le informazioni e confrontare
facilmente date e orari.
Sfruttando le unit SysUtils e
DateUtils è possibile realizzare software più
completo, affidabile e professionale, evitando di
reinventare soluzioni già disponibili e concentrate sulle
reali esigenze dell'applicazione.