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?
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?
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!