Olá,
Eu estou desenvolvendo um programa em C que dê a diferença entre duas datas, mas não tenho permissão para utilizar funções prontas para isso, como a difftime. Eu resolvi transformar a data inicial em dias, o que foi feito corretamente, e depois transformar este valor em anos, meses e dias. Entretanto, estou falhando. Já tentei todas as variações que vieram à mente e nenhuma funcionou.
O código que estou tentando realizar consiste em contar os dias até a data final e ao mesmo tempo contar o tempo decorrido.
Se alguém houver uma solução para o meu código, ou uma saída alternativa, estarei feliz em recebê-la.
Grato desde já! Trecho do código:
daysPerMonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
nDias = diainicial;
int nDias2=0, nMeses2=0, nAnos2=0;
nMeses = mesinicial;
nAnos = anoinicial;
//Todas as variáveis são int
for(i=0;i<dias;i++){
nDias++;
nDias2++;
if (nDias > daysPerMonth[nMeses-1] || ( nMeses==2 && nDias==29 && bissexto(nAnos)==0 ) ){
nDias = 1;
nMeses++;
if (nMeses==13){
nMeses = 1;
nAnos++;
}
}
if (nDias2 > 31){
nDias2 = 1;
nMeses2++;
if (nMeses2==13){
nMeses2 = 1;
nAnos2++;
}
}
}