Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/05/2015, 10:26
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Establecer diferencia en días de 2 fechas distintas [C].

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
  1. #include <stdio.h>
  2.  
  3. typedef struct{
  4.     int dia;
  5.     int mes;
  6.     int anio;
  7. }Fecha;
  8.  
  9. int numeroBisiestos( int anio );
  10.  
  11. int main(void){
  12.     int totalDiasAnio[] = {00,31,59,90,120,151,181,212,243,273,304,334,365};
  13.     int totalDias=0, difAnio=0, i;
  14.     Fecha F1 = {4,5,2015} , F2 = {4,5,2025};
  15.    
  16.     difAnio = F2.anio - F1.anio;
  17.    
  18.     if( difAnio == 0){
  19.         totalDias += (totalDiasAnio[F2.mes-1] + F2.dia) - (totalDiasAnio[F1.mes-1] + F1.dia);  
  20.         if( F1.mes <= 2 && F2.mes > 2) {totalDias += numeroBisiestos(F1.anio);}
  21.     }
  22.     else{
  23.         totalDias += 365 - (totalDiasAnio[F1.mes-1] + F1.dia);
  24.         if( F1.mes < 3) {totalDias += numeroBisiestos(F1.anio);}
  25.        
  26.         for( i= F1.anio +1; i< F2.anio; i++ ){
  27.             totalDias += 365 + numeroBisiestos(i);
  28.         }
  29.        
  30.         totalDias += totalDiasAnio[F2.mes-1] + F2.dia;
  31.         if( F2.mes > 2) {totalDias += numeroBisiestos(F2.anio);}
  32.     }
  33.     printf("\n Del %d/%d/%d al %d/%d/%d hay %d dias", F1.dia, F1.mes, F1.anio,
  34.             F2.dia, F2.mes, F2.anio, totalDias);
  35.     getchar();
  36.     return 0;
  37. }
  38.  
  39. int numeroBisiestos( int anio ){
  40.     if((anio %4 == 0 && anio%100 != 0) || (anio%400) == 0){return 1;}
  41.     else{return 0;}
  42. }

Daniel

Última edición por rdv316; 04/05/2015 a las 10:53 Razón: No me deja subir el programa junto con el texto, si lo hago me direcciona a una página donde me pide copiar una frase y cuand