Precisando de freelancer em C, C++, Java, Delphi, PHP, JavaScript, C#, VB.NET, JSP, Servlets, JSF, etc? Fale comigo: osmar@arquivodecodigos.net
Você está aqui: Inicio -> Dicas e Truques -> C++ -> Como usar a função mktime() para construir datas e horas em C++
Como usar a função mktime() para construir datas e horas em C++
Esta dica foi visualizada 2369 vezes

Url reduzida: http://www.arquivodecodigos.net/dicas/3406

Categoria: Dicas & Truques
Sub-Categoria: Data e Hora [Veja dicas relacionadas]

Meu site é muito confuso mesmo. Se até agora não encontrou o que procura, experimente minha pesquisa interna abaixo. É provável que a resposta para a sua pergunta esteja em uma das mais de 5.000 páginas do site.
Pesquisa:

Como usar a função mktime() para construir datas e horas em C++

A função mktime(), do header <ctime> é 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:

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:

#include <cstdlib>
#include <iostream>

using namespace std;

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
  cout << "Data construída: " << asctime(timeinfo) << "\n\n";
    
  system("PAUSE");
  return EXIT_SUCCESS;
}

Ao executar este código teremos uma saída parecida com:

Data construída: Mon Apr 23 09:40:59 2001
 
Digitando 2011 - O programa de digitação mais usado em todo o Brasil
Patrocinador oficial: O Digitando 2011 é um dos programas para a prática de digitação mais usados no Brasil. É o preferido das franquias DATA BYTE, Microlins, MICROCAMP e PREPARA. Faça o download e conheça-o você também. O Digitando é o único no Brasil que permite a execução de músicas e rítmos de bateria enquanto se pratica a digitação.
Veja mais Dicas & Truques na sub-categoria: Data e Hora
Veja mais Dicas & Truques de outras linguagens
Fechar
Osmar J. Silva - Criador do site Arquivo de CódigosVocê está precisando de freelance para ajudá-lo em seus códigos?
Meu nome é Osmar J. Silva. Sou criador deste site, programador e atuo como freelancer desde 2001.

Minha especialidade é C/C++. Mas posso ajudá-lo em Java, Delphi, PHP, Python, Ruby, Qt, wxWidgets, MySQL e algumas outras linguagens e ferramentas. Clique aqui e fale comigo por telefone, e-mail ou MSN.
Encanto Art & Doces - Goiânia-GO
Encanto Art & Doces - Goiânia-GO
Assinantes
Por favor, informe os dados abaixo para acessar sua conta:
Usuário:
Senha:
 
Esqueci minha senha
Quero criar uma conta
Veja mais Dicas & Truques de C++
 
Dicas e truques de Java
Dicas e truques de C++
Dicas e truques de Delphi
http://www.arquivodecodigos.net
2000 - 2010 - Todos os direitos reservados a Osmar J. Silva
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.

Posso copiar o conteúdo do site e colocar em meu site ou blog? Pode sim, desde que você coloque um link e referência
ao meu site. Caso não faça isso meu advogado fará todo o possível para deixar sua conta bancária com algumas centenas
de Reais a menos.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734
E-Mail: suporte@recomende.com
MSN: osmar@recomende.com (só para negócios, por favor)
Perfil no LinkedIn: http://br.linkedin.com/pub/osmar-j-silva-silva/8/94a/630

Para me contratar como freelancer ligue: (062) 3261-7018 / (62) 8185-0734

Desenvolvedor Responsável: Osmar J. Silva
Fechar