time.h

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Libreria standard del C++
Libreria standard del C


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_tin 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]