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