long int clock(void)
Recebe: void (não recebe parâmetro nenhum).
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.
//EXEMPLO CLOCK()
#include <studio.h>
#include <time.h>
int main() {
printf("Pulsos de clock até o momento: %ld\n", clock());
printf("printf Aleatório\n");
printf("Mais um teste da quantidade de pulsos de clock: %ld\n",
clock());
return 0;
}
>./main
Pulsos de clock até o momento: 1701
printf aleatório
Mais um teste da quantidade de pulsos de clock: 1797
time_t time(time_t *ponteiro_tempo)
Recebe: uma variável do tipo time_t, a passagem deve ser por referência.
Retorna: a data e hora do sistema e atribui esse valor à variável passada como parâmetro.
//EXEMPLO TIME()
#include <studio.h>
#include <time.h>
int main() {
time_t tempo = time(NULL);
printf(ctime(&tempo));
time(&tempo);
printf("Outro teste: %s", ctime(&tempo));
return 0;
}
>./main
Thu May 27 20:20:01 2021
Outro teste: Thu May 27 20:20:01 2021
struct tm difftime(time_t tempo, time_t tempo0)
Recebe: duas variáveis do tipo time_t, por meio de passagem por valor.
Retorna: a diferença, em segundos, entre tempo e tempo0.
//EXEMPLO DIFFTIME()
#include <studio.h>
#include <time.h>
int main() {
struct tm tempo, tempo0;
tempo.tm_sec = 2*42;
tempo.tm_min = 1;
tempo.tm_hour = 1;
tempo.tm_mday = 1;
tempo.tm_mon = 1;
tempo.tm_year = 1;
tempo.tm_wday = 1;
tempo0.tm_sec = 42;
tempo0.tm_min = 1;
tempo0.tm_hour = 1;
tempo0.tm_mday = 1;
tempo0.tm_mon = 1;
tempo0.tm_year = 1;
tempo0.tm_wday = 1;
printf("Diferença: %lf\n",
difftime(mktime(&tempo),
mktime(&tempo0)));
return 0;
}
>./main
Diferença: 42.000000
time_t mktime(struct tm *tempo)
Recebe: uma variável do tipo struct tm, com passagem por referência.
Retorna: os valores nos moldes do tipo time_t, fazendo uso dos valores presentes na variável do tipo struct tm.
//EXEMPLO MKTIME()
#include <studio.h>
#include <time.h>
int main() {
struct tm tempo;
tempo.tm_sec = 42;
tempo.tm_min = 59;
tempo.tm_hour = 23;
tempo.tm_mday = 25;
tempo.tm_mon = 12;
tempo.tm_year = 10191 - 1900;
tempo.tm_wday = 1;
//tempo.tm_yday = ;
//tempo.tm_isdst = ;
time_t tempoConvertido = mktime(&tempo);
printf(ctime(&tempoConvertido));
return 0;
}
>./main
Wed Jan 25 23:59:42 10192
string asctime(const struct tm *tp)
Recebe: uma variável do tipo struct tm, com passagem por referência.
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.
//EXEMPLO ASCTIME()
#include <studio.h>
#include <time.h>
int main() {
struct tm tempo;
tempo.tm_sec = 42;
tempo.tm_min = 59;
tempo.tm_hour = 23;
tempo.tm_mday = 25;
tempo.tm_mon = 12 - 1;
tempo.tm_year = 10191 - 1900;
tempo.tm_wday = 3;
//tempo.tm_yday = ;
//tempo.tm_isdst = ;
printf(asctime(&tempo));
return 0;
}
>./main
Wed Dec 25 23:59:42 10191
string ctime(const time * tempo)
Recebe: uma variável do tipo time_t, com passagem por referência.
Retorna: 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.
//EXEMPLO CTIME()
#include <studio.h>
#include <time.h>
int main() {
time_t tempo;
time(&tempo);
printf(ctime(&tempo));
return 0;
}
>./main
Thu May 27 21:14:34 2021
struct tm gmtime(const time_t * tempo)
Recebe: uma variável do tipo time_t, com passagem por referência.
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.
//EXEMPLO GMTIME()
#include <studio.h>
#include <time.h>
/* definindo o UTC/GMT do Brasil e do Japão */
#define BRT -3
#define JST 9
int main() {
time_t tempo;
time(&tempo);
struct tm *tempo0 = gmtime(&tempo);
printf("Horário no Japão: %02d:%02d:%02d\n"
"Horário no Brasil: %02d:%02d:%02d\n",
tempo0->tm_hour + JST, tempo0->tm_min,
tempo0->tm_sec, tempo0->tm_hour + BRT,
tempo0->tm_min, tempo0->tm_sec);
return 0;
}
>./main
Horário no Japão: 13:14:07
Horário no Brasil: 01:14:07
struct tm localtime(const time_t *tempo)
Recebe: uma variável do tipo time_t, com passagem por referência.
Retorna: um struct tm que aponta/recebe as informações contidas em time_t.
//EXEMPLO LOCALTIME()
#include <studio.h>
#include <time.h>
int main() {
time_t tempo;
time(&tempo);
struct tm *tempo0 = localtime(&tempo);
printf("Horário atual: %02d:%02d:%02d\n",
tempo0->tm_hour, tempo0->tm_min, tempo0->tm_sec);
return 0;
}
>./main
Horário atual: 01:19:11
struct tm strftime(char * string_armazena_data, size_t tamanho_da_string, const char* formato, const struct tm * tempo)
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.
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.
//EXEMPLO STRFTIME()
#include <studio.h>
#include <time.h>
#include <stdlib.h>
int main() {
time_t tempo;
time(&tempo);
struct tm *tempo0 = localtime(&tempo);
char *string_armazena_data = (char *)malloc(100*sizeof(char));
strftime(string_armazena_data, 100, "%c", tempo0);
printf("%s\n", string_armazena_data);
return 0;
}
>./main
Fri May 28 19:51:07 2021