C:
Ottenere la data corrente
Come fare:
In C, l’header <time.h>
fornisce le funzioni e i tipi necessari per lavorare con date e orari. La funzione time()
recupera l’ora corrente, mentre localtime()
converte quest’ora nel fuso orario locale. Per visualizzare la data, utilizziamo strftime()
per formattarla come una stringa.
Ecco un esempio basilare:
#include <stdio.h>
#include <time.h>
int main() {
char buffer[80];
time_t rawtime;
struct tm *timeinfo;
// Ottieni il tempo corrente
time(&rawtime);
// Convertilo in ora locale
timeinfo = localtime(&rawtime);
// Formatta la data e stampala
strftime(buffer, 80, "La data di oggi è %Y-%m-%d", timeinfo);
printf("%s\n", buffer);
return 0;
}
Un esempio di output potrebbe essere il seguente:
La data di oggi è 2023-04-12
Approfondimento
La gestione del tempo in C, come facilitata da <time.h>
, si rifà ai primissimi giorni della lingua e dei sistemi UNIX. È costruita attorno al tipo di dato time_t
, che rappresenta il tempo corrente come il numero di secondi dall’Epoch Unix (1 gennaio 1970). Sebbene ciò sia efficiente e universalmente compatibile, significa anche che le funzioni temporali della libreria standard C sono intrinsecamente limitate dall’intervallo e dalla risoluzione di time_t
.
Le applicazioni moderne, specialmente quelle che richiedono timestamp ad alta risoluzione o che trattano date molto lontane nel futuro o nel passato, possono trovare queste limitazioni impegnative. Ad esempio, il problema dell’Anno 2038 è una famosa illustrazione in cui i sistemi che utilizzano un time_t
a 32-bit andranno in overflow.
Per una gestione del tempo e delle date più complessa, molti programmatori si rivolgono a librerie esterne o alle funzionalità fornite dal sistema operativo. In C++, ad esempio, la libreria <chrono>
offre capacità di manipolazione del tempo più precise e versatili.
Nonostante le sue limitazioni, la semplicità e l’onnipresenza delle funzioni temporali di C le rendono perfettamente adatte per molte applicazioni. Comprendere questi strumenti è fondamentale per i programmatori C, offrendo una miscela di contesto storico di programmazione e utilità pratica quotidiana.