Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Manipulação de datas??

Bom dia! Como se faz a manipulação de datas em liguagem C?? Eu pretendo calcular a diferência de dias, ou meses, entre uma data inicial e final e não estou conseguindo! Procuro informação na internet e não consigo! Alguém pode me ajudar?

1 resposta
solução!

Olá Wagner, tudo bem?

Manipulação de datas em C pode ser um pouco complicado, mas com algumas funções específicas é possível realizar cálculos de diferença entre datas. Uma das funções que pode te ajudar é a "difftime()", que calcula a diferença entre duas datas em segundos.

Para calcular a diferença em dias, você pode dividir o resultado da diferença em segundos por 86400 (que é o número de segundos em um dia). Para calcular a diferença em meses, é necessário fazer uma lógica um pouco mais complexa, levando em consideração o número de dias em cada mês.

Aqui está um exemplo de código que pode te ajudar a calcular a diferença em dias:

#include <stdio.h>
#include <time.h>

int main() {
   struct tm data1 = {0}; // data inicial
   struct tm data2 = {0}; // data final
   
   // preenche as datas
   data1.tm_year = 2022 - 1900; // ano - 1900
   data1.tm_mon = 0; // mês (0-11)
   data1.tm_mday = 1; // dia
   data2.tm_year = 2022 - 1900;
   data2.tm_mon = 0;
   data2.tm_mday = 10;
   
   // converte as datas para segundos
   time_t segundos1 = mktime(&data1);
   time_t segundos2 = mktime(&data2);
   
   // calcula a diferença em segundos
   double diferenca = difftime(segundos2, segundos1);
   
   // converte a diferença em dias
   int dias = diferenca / 86400;
   
   printf("A diferença entre as datas é de %d dias.\n", dias);
   
   return 0;
}

Espero ter ajudado e bons estudos!