English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Linguagem C

Controle de Fluxo de Linguagem C

Funções no C

Matriz no C

Ponteiro no C

String no C

Estrutura de Linguagem C

Arquivo de Linguagem C

Outro C

Manual de Referência do Linguagem C

Uso e exemplo da função mktime() da biblioteca C

Biblioteca Padrão - <time.h>

Função da biblioteca C time_t mktime(struct tm *timeptr) Converter timeptr A estrutura apontada é convertida em um valor time_t com base no fuso horário local.

Declaração

A seguir está a declaração da função mktime().

time_t mktime(struct tm *timeptr)

Parâmetro

  • timeptr -- Este é um ponteiro para o valor time_t que representa o tempo do calendário, que é decomposto em várias partes. A seguir estão os detalhes da estrutura timeptr:
struct tm {
   int tm_sec;         /* Os segundos, no intervalo de 0 a 59                */
   int tm_min;         /* Os minutos, no intervalo de 0 a 59                */
   int tm_hour;        /* As horas, no intervalo de 0 a 23                */
   int tm_mday;        /* O dia do mês, no intervalo de 1 até 31                    */
   int tm_mon;         /* O mês, no intervalo de 0 a 11                */
   int tm_year;        /* desde 1900 a partir do ano                */
   int tm_wday;        /* O dia da semana, no intervalo de 0 a 6                */
   int tm_yday;        /* O dia do ano, no intervalo de 0 a 365                    */
   int tm_isdst;       /* Horário de verão                        */    
};

Retorno

Esta função retorna um valor do tipo time_t, que corresponde ao tempo calendário passado como parâmetro. Em caso de erro, retorna -1 Valores.

Exemplo online

O exemplo a seguir demonstra o uso da função mktime().

/* Inserir data para determinar o dia da semana */
#include <stdio.h>      /* printf, scanf */
#include <time.h>       /* time_t, struct tm, time, mktime */
int main()
{
    time_t rawtime;
    struct tm * timeinfo;
    int year, month, day;
    const char * weekday[] = { "Domingo", "Segunda-feira","Terça-feira", "Quarta-feira","Quinta-feira", "Sexta-feira", "Sábado"};
    /* Data de entrada do usuário */
    printf("Ano: "); fflush(stdout); scanf("%d",&year);
    printf("Mês: "); fflush(stdout); scanf("%d",&month);
    printf("Dia: "); fflush(stdout); scanf("%d",&day);
    /* Obtém informações de tempo atual e modifica as informações de entrada do usuário */
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    timeinfo->tm_year = year - 1900;
    timeinfo->tm_mon = month - 1;
    timeinfo->tm_mday = day;
    /* Chama mktime: timeinfo->tm_wday  */
    mktime(timeinfo);
    printf ("aquele dia era:%s\n", weekday[timeinfo]->tm_wday]);
    return 0;
}

Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:

ano: 2018
mês: 7
dia: 26
aquele dia era: quinta-feira

Biblioteca Padrão - <time.h>