Você está aqui: C ::: Dicas & Truques ::: Data e Hora |
Como usar a função mktime() para construir datas e horas em CQuantidade de visualizações: 4340 vezes |
A função mktime(), do header <time.h> é usada quando queremos construir novas datas e horas em C. Esta função recebe um ponteiro para uma estrutura tm e retorna um valor do tipo time_t (ou -1 em caso de erro). Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- time_t mktime(struct tm *timeptr); A função mktime() interpreta o conteúdo da estrutura tm apontada pelo parâmetro timeptr como uma hora de calendário expressa na hora local. Esta hora de calendário é usada para ajustar corretamente os valores dos membros da estrutura tm e retorná-la como um objeto do tipo time_t. Os valores originais dos membros tm_wday e tm_yday do parâmetro timeptr são ignorados, e as faixas de valores para o restante de seus membros não são mais restritos ao seus valores normais (como a restrição de valores de 1 a 31 para o membro tm_mday). O objeto apontado por timeptr é modificado, ajustando tm_wday e tm_yday para seus valores apropriados e modificando os demais membros, se necessário, para acomodar as faixas normais de valores. Veja um exemplo de como podemos contruir a data 23/04/2001: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]){
time_t data_hora_segundos; // guarda os segundos deste 01/01/1970
struct tm *timeinfo; // declara uma estrutura tm
time(&data_hora_segundos); // preenche a variável data_hora_segundos
// preenche a estrutura timeinfo
timeinfo = localtime(&data_hora_segundos);
// data que queremos construir
int dia = 23;
int mes = 4;
int ano = 2001;
// vamos modificar a estrutura timeinfo
timeinfo->tm_year = ano - 1900;
timeinfo->tm_mon = mes - 1;
timeinfo->tm_mday = dia;
// vamos atualizar a estrutura timeinfo
mktime(timeinfo);
// e agora exibir o resultado
printf("Data construída: %s\n\n", asctime(timeinfo));
system("PAUSE");
return 0;
}
Ao executar este código teremos uma saída parecida com: Data construída: Mon Apr 23 09:40:59 2001 |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






