time.h
time.h è l'header file della libreria standard del C che fornisce un accesso standardizzato alle funzioni di acquisizione e manipolazione del tempo. Fornisce supporto per ottenere il tempo, trasformarlo in diversi formati e convertirlo in stringa.
Funzioni
[modifica | modifica wikitesto]Tipologia | Nome | Descrizione |
---|---|---|
Manipolazione dell'ora | difftime | Calcola la differenza in secondi di due valori time_t |
time | Restituisce l'ora del sistema sotto forma di time_t in secondi (che corrispondono solitamente ai secondi dall'epoca, tipicamente dall'epoca Unix). Il valore dell'epoca dipende dal sistema operativo. Vengono spesso usati il 1970 e il 1900 come epoca | |
clock | Restituisce il numero di tick passati a partire dal lancio del programma | |
timespec_get (C11) | Restituisce la data in secondi e millisecondi da una base | |
Conversione di formati | asctime | Converte una struct tm in una rappresentazione testuale (obsoleta) |
ctime | Converte un valore time_t in una rappresentazione testuale | |
strftime | Converte una struct tm in una rappresentazione testuale personalizzata | |
strptime | Converte una stringa contenente l'ora in una struct tm | |
wcsftime | Converte una struct tm in una rappresentazione testuale personalizzata usando wide string | |
gmtime | Converte un valore time_t in ora basata sul calendario espressa come ora UTC | |
localtime | Converte un valore time_t in ora basata sul calendario espressa come ora locale | |
mktime | Converte l'ora basato sul calendario in time_t |
Costanti
[modifica | modifica wikitesto]Nome | Descrizione |
---|---|
CLOCKS_PER_SEC | Definisce il numero di "tick" della CPU che trascorrono in un secondo. clock()/CLOCKS_PER_SEC risulta quindi essere un tempo espresso in secondi. |
Tipi di dato
[modifica | modifica wikitesto]Nome | Descrizione |
---|---|
clock_t | Tipo di dato restituito da clock() . Generalmente definito come un long int. |
time_t | Tipo di dato restituito da time() , rappresenta un tempo di calendario. Generalmente definito come un long int. |
struct tm | Struttura usata e restituita da asctime() , gmtime() , localtime() e mktime() . |
struct timespec | Struttura usata da timespec_get() . Contiene una data composta dal numero di secondi e nanosecondi. |
Esempio
[modifica | modifica wikitesto]Il programma in C qui sotto stampa sullo standard output l'ora corrente:
#include <time.h> #include <stdlib.h> #include <stdio.h> int main(void) { time_t ora_corrente; char* stringa_ora_corrente; /* Otteniamo l'ora corrente. */ ora_corrente = time(NULL); if (ora_corrente == ((time_t)-1)) { (void) fprintf(stderr, "Errore nell'ottenimento dell'ora corrente.\n"); exit(EXIT_FAILURE); } /* Convertiamola nell'ora locale. */ stringa_ora_corrente = ctime(&ora_corrente); if (stringa_ora_corrente == NULL) { (void) fprintf(stderr, "Errore nella conversione in ora locale.\n"); exit(EXIT_FAILURE); } /* Stampiamola sullo standard output. ctime() ha già aggiunto il carattere di ritorno a capo. */ (void) printf("L'ora corrente è %s", stringa_ora_corrente); exit(EXIT_SUCCESS); }
L'output è il seguente:
L'ora corrente è Sat Sep 16 18:24:29 2023
Altri progetti
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) time.h da The Open Group Base Specifications Issue 7
- (EN) The GNU C Library - Date and Time, su chemie.fu-berlin.de. URL consultato il 3 luglio 2012 (archiviato dall'url originale il 26 dicembre 2012).
- (EN) C Time Library, su cplusplus.com. URL consultato il 3 luglio 2012 (archiviato dall'url originale il 4 luglio 2012).
- 69.16 File «time.h» da Appunti di informatica libera