Hola gente.
He creado una versión un poco más reducida y la dejo a continuación, espero que siempre de resultados correctos, hice muchas pruebas y todo bien.-
Eferion, estoy temblando por las modificaciones que puedas sugerirme, (chiste) espero esas sugerencias.-
http://www.calendario-365.es/calcula...os-fechas.html
Código C:
Ver original#include <stdio.h>
typedef struct{
int dia;
int mes;
int anio;
}Fecha;
int numeroBisiestos( int anio );
int main(void){
int totalDiasAnio[] = {00,31,59,90,120,151,181,212,243,273,304,334,365};
int totalDias=0, difAnio=0, i;
Fecha F1 = {4,5,2015} , F2 = {4,5,2025};
difAnio = F2.anio - F1.anio;
if( difAnio == 0){
totalDias += (totalDiasAnio[F2.mes-1] + F2.dia) - (totalDiasAnio[F1.mes-1] + F1.dia);
if( F1.mes <= 2 && F2.mes > 2) {totalDias += numeroBisiestos(F1.anio);}
}
else{
totalDias += 365 - (totalDiasAnio[F1.mes-1] + F1.dia);
if( F1.mes < 3) {totalDias += numeroBisiestos(F1.anio);}
for( i= F1.anio +1; i< F2.anio; i++ ){
totalDias += 365 + numeroBisiestos(i);
}
totalDias += totalDiasAnio[F2.mes-1] + F2.dia;
if( F2.mes > 2) {totalDias += numeroBisiestos(F2.anio);}
}
printf("\n Del %d/%d/%d al %d/%d/%d hay %d dias", F1.
dia, F1.
mes, F1.
anio, F2.dia, F2.mes, F2.anio, totalDias);
return 0;
}
int numeroBisiestos( int anio ){
if((anio %4 == 0 && anio%100 != 0) || (anio%400) == 0){return 1;}
else{return 0;}
}
Daniel