time.h
Aspetto
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