Hola, necesito ayuda para crear una aplicación que me permitiera calcular la difertencia de dos fechas: dd/mm/aaaa hacia dd/mm/aaaa, tomando en cuenta años bisiestos ..
Porfavor agradecería una pronta ayuda.
Gracias
| |||
Re: Calcular diferencia de Fechas encontre esto en la red, pero no me funciona, si sabes algo me cuentas estoy buscando lo mismo /************************************************** ************** * * * Nombre: ABRAHAM GAUSACHS HERNANDEZ, WIDA308 * * * * Descripción: Calcula los dias dados entre 2 fechas del s.XXI * * * * Data: 12 de Octubre de 2001 * * * ************************************************** ***************/ /* Este programa calcula la cantidad de dias que hay entre una fecha y otra de este siglo. Tb comprueba que la fecha introducida sea correcta. La idea es: coge las dos fechas comprueba las dos fechas realiza la diferenci printa salida Ejemplo: El usuario escribe 10 01 01: 10 02 01 Diferencia en dias: 365. Este programa esta realizado aprovechando las funciones de la libreria de C time.h como por ejemplo difftime(q calcula la diferencia en segundos) y mktime que usa una fecha para pasarla a formato time_t. Lo malo de estas funciones es que toman sus valores a partir del uno de enero de 1970 (?no se porque¿), pero como estamos tratando con el siglo 21 (2000-2099) no hay problema. */ /****************************DECLARACIONES********* ************************************/ #include <stdio.h> #include <time.h> int bisiesto(int year); int comprueba(int dia,int mes,int ano); /********************************MAIN************** ************************************/ void main() { double dd; //Diferencia entre Dias int suma; //Resultado de las comprobaciones struct tm fecha1; //Estructuras de C para las fechas struct tm fecha2; time_t data1; time_t data2; printf ("Entra una fecha de este siglo (dd mm aa) EJEMPLO: 03 12 01 \n"); scanf ("%d %d %d", &fecha1.tm_mday, &fecha1.tm_mon, &fecha1.tm_year); printf ("Entra otra fecha de este siglo (dd mm aa) EJEMPLO: 04 11 09 \n"); scanf ("%d %d %d", &fecha2.tm_mday, &fecha2.tm_mon, &fecha2.tm_year); fecha1.tm_mon = fecha1.tm_mon - 1; //Restamos uno xq los meses son a partir de enero fecha2.tm_mon = fecha2.tm_mon - 1; //con lo que enero es el mes 0 y diciembre el 11. fecha1.tm_year = fecha1.tm_year + 100; //Sumamos 100 para tratar con fechas del fecha2.tm_year = fecha2.tm_year + 100; //siglo XXI. fecha1.tm_sec = 0; // Tenemos que inicializar las horas de las dos estructuras fecha1.tm_min = 0; // porque si no funciona. fecha1.tm_hour = 0; fecha2.tm_sec = 0; fecha2.tm_min = 0; fecha2.tm_hour = 0; suma = comprueba(fecha1.tm_mday,fecha1.tm_mon,fecha1.tm_y ear); suma = suma + comprueba(fecha2.tm_mday,fecha2.tm_mon,fecha2.tm_y ear); if (suma == 2){ // Sera 2 cuando la comprobacion de ambos numeros halla sido correcta. data1 = mktime(&fecha1); //formateamos las fechas para tratarlas como t_time data2 = mktime(&fecha2); dd=difftime(data2, data1); printf("\nDiferencia en dias entre las dos fechas: %lf\n", dd/(24*60*60)); } else{ printf("Ha habido un error en las fechas insertadas.\n"); } } /****************************FUNCIONES************* *************************************/ //MIRA SI EL ANO ES BISIESTO int bisiesto(int year) { int esbisiesto = 0; if (year % 400 == 0) esbisiesto = 1; else if ( year % 4 == 0 && year % 100 != 0 ) esbisiesto = 1; return esbisiesto; } //MIRA SI LAS FECHAS SON CORRECTAS int comprueba(int dia,int mes,int ano){ int correcto = 0; if (ano >= 100 && ano < 200 ){ correcto = 1; //0 no es correcte, 1 si es correcte } if (mes > 12 || mes < 0){ correcto = 0; } if (mes == 1 && dia == 29){ if (bisiesto(ano+1900) == 0){ correcto = 0; }else{correcto = 1;} } return correcto; } |
| ||||
Re: Calcular diferencia de Fechas Hola, ese codigo me ha servido.. ptengo que tomat ern cuanta desde el año 1700 en adelante.. Saludos y gracias esperemos a ver si resulta. P.d: en un rato mas pego el codigo que he trabajado (pero que no esta listo), ya que todavía tengo unos problemas, por lo que no s puede
__________________ Incubando Proyectos Web Generando Comunidad en Comunidad |
| |||
Respuesta: Calcular diferencia de Fechas Buenas tardes, tengo que subir una tarea al portal de la Universidad antes de las 10:40 PM, con un programa parecido a éste, espero alguien me pueda ayudar. Tengo que calcular la cantidad de días vividos por una persona, para calcularlo se ingresarán la fecha de nacimiento y fecha actual por el teclado... Lo que no tengo idea es de como realizar una operación entre ambas fechas en formato (dd/mm/aaaa)... Alguien tiene alguna idea? Muchas gracias.. |