Descrição:


No cabeçalho time.h estão localizadas as funções, variáveis, e macros para manipulação de unidades de tempo, como, por exemplo, o ano, mês, dia, hora, minutos, e segundos. A partir das funções fornecidas é possível obter, por exemplo, a data e o horário retornadas pelo sistema, entre outras funcionalidades relacionadas a operações com data e hora. Ou seja, é um cabeçalho muito poderoso em termos de controle da execução do programa por intermédio do "tempo", e no que diz respeito a manipulação de ações e operações que tem como referência datas e horas.

Variáveis:

clock_t: variável que tem por finalidade armazenar valores relacionados a pulsos de clock do processador, como o que é fornecido pela função clock().

time_t: variável que armazena os valores relacionados a data e hora em uma única variável e, portanto, existem funções específicas para operar com essa variável, como mktime(), ctime(), entre outras que recebem time_t como parâmetro e/ou retornam valores do tipo time_t.

size_t: variável utilizada para retornar a quantidade de espaço que uma determinada variável e/ou tipo ocupa na memória.

struct tm: estrutura de dados que armazena valores referentes a data e hora, assim, contendo nove (9) variáveis declaradas dentro deste struct para tal.

Macros:

CLOCKS_PER_SEC: macro responsável por armazenar a quantidade de pulsos por segundo do processador da máquina na qual o programa está sendo executado.

NULL: ponteiro do tipo NULL, utilizado para indicar que um ponteiro não aponta para posição de memória alguma.

Funções:

long int clock(void)

RETORNA: o valor, utilizando long int, da quantidade de pulsos de clock que o processador executou a partir do instante em que o programa foi inicializado até o momento em que clock() foi chamada. Caso seja necessário conhecer o tempo em segundos, e não em quantidade de pulsos de clock, então basta dividir o valor retornado por clock() por CLOCKS_PER_SEC.
RECEBE: void (não recebe parâmetro nenhum).

time_t time(time_t *ponteiro_tempo)

RETORNA: a data e hora do sistema e atribui esse valor à variável passada como parâmetro.
RECEBE: uma variável do tipo time_t, a passagem deve ser por referência.

struct tm difftime(time_t tempo, time_t tempo0)

RETORNA: a diferença, em segundos, entre tempo e tempo0.
RECEBE: duas variáveis do tipo time_t, por meio de passagem por valor.

time_t mktime(struct tm *tempo)

RETORNA: os valores nos moldes do tipo time_t, fazendo uso dos valores presentes na variável do tipo struct tm.
RECEBE: uma variável do tipo struct tm, com passagem por referência.

string asctime(const struct tm *tp)

RETORNA: uma string, contendo os campos do struct tm fornecidos, formatados conforme o seguinte: 'Dia da semana' Mês Dia Hora:Minutos:Segundos Mês\n\0.
RECEBE: uma variável do tipo struct tm, com passagem por referência.

string ctime(const time_t *tempo)

RETORNA: uma variável do tipo time_t, com passagem por referência.
RECEBE: uma string, contendo os valores da variável *tempo, de tipo time_t, formatando as informações de data e hora conforme o seguinte: 'Dia da semana' Mês Dia Hora:Minutos:Segundos Mês\n\0.

struct tm gmtime(const time_t *tempo)

RETORNA: um struct tm, com base nas informações contidas na variável de tipo time_t, a partir do qual é possível manipular data e hora com base em um fuso horário qualquer, uma vez que o struct retorna já modificada para interagir com manipulações de diferentes valores de UTC/GMT.
RECEBE: uma variável do tipo time_t, com passagem por referência.

struct tm localtime(const time_t *tempo)

RETORNA: um struct tm que aponta/recebe as informações contidas em time_t.
RECEBE: uma variável do tipo time_t, com passagem por referência.

struct tm strftime(char* string_armazena_data, size_t tamanho_da_string, const char* formato, const struct tm *tempo)

RETORNA: os valores presentes em *tempo para armazenar os valores em string_armazena_data, no formato de uma string com data e horário já formatados o seguinte: 'Dia da semana' Mês Dia Hora:Minutos:Segundos Mês\0.
RECEBE: um ponteiro do tipo char (a partir do qual é possível criar uma string de caracteres), a quantidade de espaço alocado para o ponteiro de caractere, o tipo do ponteiro (no caso, "%c", pois é do tipo char), uma variável do tipo struct tm que irá fornecer as informações sobre data e hora para criação da string.