Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Validar 2 fechas guardadas en variables char [C]

Estas en el tema de Validar 2 fechas guardadas en variables char [C] en el foro de C/C++ en Foros del Web. Hola a todos. ¿Hay otra manera más práctica para hacer esto?, lo que se me antoja es separar día, mes y año castearlo a int ...
  #1 (permalink)  
Antiguo 21/04/2015, 10:08
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Validar 2 fechas guardadas en variables char [C]

Hola a todos.
¿Hay otra manera más práctica para hacer esto?, lo que se me antoja es separar día, mes y año castearlo a int y luego compararlas una a una.-
Dejo la función por si desean hacerme alguna observación.-

Código C:
Ver original
  1. void consultation(FILE *ptrFile, Super *super, int tamStructSuper){
  2.     char fechaIni[11], fechaFin[11], *p = NULL;
  3.     int ch, ok;
  4.     float totalPar = 0.0, totalCon = 0.0;
  5.    
  6.     do{
  7.         printf( "\n\n Ingrese INICIO de la consulta (formato ==> 11/04/2015)....: " );
  8.         fgets(fechaIni, 11, stdin);
  9.         if((p=strchr(fechaIni, '\n'))){
  10.             *p='\0';
  11.         }
  12.         else{
  13.             while((ch = getchar()) !='\n' && ch!=EOF);
  14.         }
  15.         ok = strlen(fechaIni);
  16.         if( ok != 10 || fechaIni[2] != '/' || fechaIni[5] != '/'){         
  17.             ok = 0;
  18.         }
  19.     }while(!ok);       
  20.  
  21.     do{
  22.         printf( "\n\n Ingrese FINAL de la consulta (formato ==> 11/04/2015).....: " );
  23.         fgets(fechaFin, 11, stdin);
  24.         if((p=strchr(fechaFin, '\n'))){
  25.             *p='\0';
  26.         }
  27.         else{
  28.             while((ch = getchar()) !='\n' && ch!=EOF);
  29.         }
  30.         ok = strlen(fechaFin);
  31.         if( ok != 10 || fechaFin[2] != '/' || fechaFin[5] != '/'){         
  32.             ok = 0;
  33.         }
  34.     }while(!ok);
  35.  
  36.     printf( "\n\n =======================================================" );
  37.     printf( " \n\n Fecha        Verduler%ca    Almac%cn     Total", 161, 130 );
  38.  
  39.     ok=0;
  40.     rewind( ptrFile);
  41.     while( fread( super, tamStructSuper, 1, ptrFile ) == 1 ){
  42.         if( super->fecha >= fechaIni && super->fecha <= fechaFin ){
  43.             ok++;  
  44.             totalPar = super->verduras + super->almacen;
  45.             totalCon += totalPar;  
  46.             printf( "\n%11s %12.2f %10.2f %9.2f", super->fecha,  super->verduras, super->almacen, totalPar);
  47.         }
  48.     }
  49.     if( ok > 0 ){
  50.         printf( "\n\n Total de la consulta.................$ %.2f", totalCon );
  51.     }else{
  52.         printf( "\n\n No  hay movimientos entre el %s al %s", fechaIni, fechaFin );
  53.     }
  54.     MENSAJE;       
  55.  
  56. }

Daniel
  #2 (permalink)  
Antiguo 21/04/2015, 18:36
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Validar 2 fechas guardadas en variables char [C]

¿Porque vas hacer un cast? No es mejor leerlas como entero directamente? Para eso esta la funcion scan format (scanf).
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct Fecha{
  4.     int dia;
  5.     int mes;
  6.     int anio;
  7. };
  8.  
  9. int comparar ( struct Fecha a, struct Fecha b )
  10.  
  11. int main (){
  12.     struct Fecha unaFecha;
  13.     struct Fecha otraFecha;
  14.     otraFecha.dia = 12;
  15.     otraFecha.mes = 12;
  16.     otraFecha.anio = 2012;
  17.  
  18.     printf( "\n\n Ingrese INICIO de la consulta (formato ==> 11/04/2015)....: " );
  19.     scanf("%d/%d/%d", &unaFecha.dia, &unaFecha.mes, &unaFecha.anio);
  20.    
  21.     printf(" Has leido: %d/%d/%d\n\n", unaFecha.dia, unaFecha.mes, unaFecha.anio );
  22.    
  23.     //comparamos una fecha con otra fecha
  24.     printf ("%s\n",( comparar(unaFecha, otraFecha) ) ? " Son iguales":" Son diferentes" );  
  25.    
  26.    
  27.     getchar();
  28.     return 0;
  29. }
  30.  
  31. int comparar ( struct Fecha a, struct Fecha b ){
  32.    
  33.     if ( a.dia == b.dia ){
  34.         if ( a.mes == b.mes ){
  35.             if ( a.anio == b.anio  ){
  36.                 return 1;
  37.                
  38.        
  39.             }
  40.         }
  41.     }
  42.     return 0;
  43.    
  44. };

espero que sirva XD
Suerte

Última edición por vangodp; 21/04/2015 a las 18:52
  #3 (permalink)  
Antiguo 21/04/2015, 20:06
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Validar 2 fechas guardadas en variables char [C]

Hola vangodp.
Muy bueno tú ejemplo, muchas gracias, me gusto el operador ternario muy bueno.-
Pero hay algo que me falta, tú código me dice si las fechas son iguales o distintas y lo que yo debo saber es si son >= inicio y <= final, por lo que intuyo no debe ser nada difícil conseguir esto, lo voy a intentar.-

Daniel
  #4 (permalink)  
Antiguo 22/04/2015, 07:04
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Validar 2 fechas guardadas en variables char [C]

Pues más o menos es lo mismo, solo que envés de enviar 2 fechas a la funcion enviás la fecha actual, la de inicio y la de fin.

Seria más o menos eso:
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. struct Fecha {
  4.     int dia;
  5.     int mes;
  6.     int anio;
  7. };
  8.  
  9. int comparar ( struct Fecha fecha, struct Fecha inicio, struct Fecha fin );
  10.  
  11. int main () {
  12.     struct Fecha inicio = { 10, 10, 2015 };
  13.     struct Fecha fecha  = { 11, 10, 2015 };
  14.     struct Fecha fin    = { 20, 10, 2015 };
  15.     printf ("%s\n",( comparar( fecha, inicio, fin ) ) ? "Esta entre las fechas de inicio y fin.":"Esta fuera de las fechas de inicio y fin." );
  16.    
  17.     getchar();
  18.     return 0;
  19. }
  20.  
  21. int comparar ( struct Fecha fecha, struct Fecha inicio, struct Fecha fin ) {
  22.  
  23.     if ( fecha.anio >= inicio.anio ) {
  24.         if ( fecha.mes >= inicio.mes ) {
  25.             if ( fecha.dia >= inicio.dia ) {
  26.                 if ( fecha.anio <= fin.anio ) {
  27.                     if ( fecha.mes <= fin.mes ) {
  28.                         if ( fecha.dia <= fin.dia ) {
  29.                             return 1;
  30.                         }
  31.                     }
  32.                 }
  33.                
  34.             }
  35.         }
  36.     }
  37.     return 0;
  38. };

Dado que ya sabes leer las fechas como enteros explicado en el ejemplo anterior me limito a poner solo la parte que compara las fechas. Depende de ti adaptarlo a tu código. ;)

Deberías leer sobre la libreria time.h que más que nada te brinda una llamada tm la que nos sirve para guardar fechas que se comprende de dia, mes, hora, dia de la semana, segundos y unas cuantas cosas más. Pero esta no es la ventaja, si no que tiene unas cuantas funciones que te hacen todo el trabajo por ti, un ejemplo es que simplemente creas las estructura tm struct tm fecha1 y acto seguido puedes solicitar al sistema que te rellene con la fecha actual de tu computadora.

Hay funciones para comparar, convertir en cadenas de caracteres, convierte el formato como por ejemplo en estados unidos veen la fecha de forma distinta que nosotros, nosotros lo vemos asi 30/12/2000 y ellos a lo mejor lo veen 2000/12/30 XDD. Hay muchas funcioncitas interesantes.

La descripcion de la estructura la tienes aquí:
int tm_sec; /* los segundos después del minuto -- [0,61] */
int tm_min; /* los minutos después de la hora -- [0,59] */
int tm_hour; /* las horas desde la medianoche -- [0,23] */
int tm_mday; /* el día del mes -- [1,31] */
int tm_mon; /* los meses desde Enero -- [0,11] */
int tm_year; /* los años desde 1900 */
int tm_wday; /* los días desde el Domingo -- [0,6] */
int tm_yday; /* los días desde Enero -- [0,365] */
int tm_isdst; /* el flag del Horario de Ahorro de Energía */
Sacado de: http://c.conclase.net/librerias/?ansitip=tm#inicio
En ese mismo enlace tienes al lado una explicación junto a ejemplos en el lado izquierdo de la pagina.

Aun que aquí tienes una descripción más breve: http://es.wikipedia.org/wiki/Time.h

Es ponerte con ella(time.h y struct tm) y hacer pruebas. Recuerde que no hay que reinventar la rueda XDD

Más enlaces:
http://www.zator.com/Cpp/E5_5_1a.htm#tm

Lo que más me gusta de esa librería es lo de imprimir la hora como caracteres, es muy flexible, con una función como sprintf o strftime te monta la fecha muy muy manejable a lo que en formato se refiere.

Mire un ejemplo de lo que puedes hacer con los debidos especificadores de formato: http://www.cplusplus.com/reference/ctime/asctime/
http://c.conclase.net/librerias/?ansifun=strftime

Aquí tienes una larga lista de especificadores para fechas: http://www.cplusplus.com/reference/ctime/strftime/

Si te vas a poner serio con eso de las fechas diría que es casi imprescindible saber manejar esa librería.

Bueno... Todo lo de arriba te lo pongo por si deseas echar un ojo, si no te interesa ni me hagas caso jajaj

Suerte!
  #5 (permalink)  
Antiguo 22/04/2015, 07:50
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Validar 2 fechas guardadas en variables char [C]

Cita:
Iniciado por vangodp Ver Mensaje
Código C:
Ver original
  1. if ( fecha.anio >= inicio.anio ) {
  2.         if ( fecha.mes >= inicio.mes ) {
  3.             if ( fecha.dia >= inicio.dia ) {
  4.                 if ( fecha.anio <= fin.anio ) {
  5.                     if ( fecha.mes <= fin.mes ) {
  6.                         if ( fecha.dia <= fin.dia ) {
Esto... y digo yo... si pongo por ejemplo inicio = 20/12/2000, fin = 01/01/2020 y como fecha a comparar... no se, 10/10/2010... me da que me va a decir que no está dentro del rango por las siguientes razones:
  • inicio.mes > fecha.mes
  • inicio.dia > fecha.dia
  • fin.mes < fecha.mes
  • fin.dia < fecha.dia

Deberías darle una segunda vuelta a tu algoritmo vangodp jejejeje
  #6 (permalink)  
Antiguo 22/04/2015, 10:30
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Validar 2 fechas guardadas en variables char [C]

si... llevas rozón. Razón demás para echar un ojo a time.h XD

Tu que tienes más ideas pon algo. XDD
  #7 (permalink)  
Antiguo 22/04/2015, 11:14
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Validar 2 fechas guardadas en variables char [C]

Hola.
Voy a poner un Ejemplo práctico (esto es lo que hay en el archivo)

10/04/2015……………………
12/04/2015……………………
15/04/2015……………………
17/04/2015……………………
20/04/2015……………………
22/04/2015……………………

Si por ej. la consulta es del 15/04/2015 al 20/04/2015
Estos son los movimientos que se debería imprimir en la pantalla.-
15/04/2015……………………
17/04/2015……………………
20/04/2015……………………
Yo lo tengo en la cabeza sólo que tiene por el momento muchos if, cuando logre hacerlo funcionar lo expondré para que me digan como optimizar el código.-
En cuanto a usar time.h que propone vangodp no lo hice porque como el operario en este caso soy yo, difícilmente vaya a ingresar 22/14/2015.-


Daniel
  #8 (permalink)  
Antiguo 22/04/2015, 11:17
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Validar 2 fechas guardadas en variables char [C]

Este si que funciona. Lo tenia guardado por alguna parte y no lo habia encontrado jaja

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. struct Fecha {
  4.     int dia;
  5.     int mes;
  6.     int anio;
  7. };
  8.  
  9. int comparar(struct Fecha fecha, struct Fecha inicio, struct Fecha fin);
  10.  
  11. int main () {
  12.     struct Fecha inicio = { 20, 01, 2000 };    
  13.     struct Fecha fecha  = { 20, 01, 2000 };    
  14.     struct Fecha fin    = { 01, 01, 2020 };    
  15.  
  16.     printf( "%s\n", ( comparar( fecha, inicio, fin ))? "Esta entre las fechas de inicio y fin":"No esta entre las fechas de inicio y fin"  );
  17.  
  18.     getchar();
  19.     return 0;
  20. }
  21.  
  22. int comparar(struct Fecha fechaDada, struct Fecha fechaInicio, struct Fecha fechaFin){
  23.    unsigned long fecha = (fechaDada.anio * 365) + (fechaDada.mes * 28) + fechaDada.dia;
  24.    unsigned long inicio = (fechaInicio.anio * 365) + (fechaInicio.mes * 28) + fechaInicio.dia;
  25.    unsigned long fin = (fechaFin.anio * 365) + (fechaFin.mes * 28) + fechaFin.dia;
  26.    
  27.    if ( fecha >= inicio && fecha <= fin ){
  28.         return 1;
  29.     }else{
  30.         return 0;
  31.     }
  32. }

Este convierte toda la fecha en un valor único al que si se puede hacer comparaciones.

Suerte.
  #9 (permalink)  
Antiguo 22/04/2015, 12:13
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Validar 2 fechas guardadas en variables char [C]

Hola .
Maravilloso, único, exelente, es lo que necesitava.-

Daniel
  #10 (permalink)  
Antiguo 22/04/2015, 12:26
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Validar 2 fechas guardadas en variables char [C]

tenga en cuenta que ni todos los meses tienen 28 días. El calculo es aproximado y puede fallar. Aun así no conozco nada más compacto.

Si te lo vas a tomar en serio y ganarte el pan con la programación no uses eso, pero para tus programillas si vale XD >_<.

Y por supuesto no es invención miá. Lo que no me recuerdo es de donde lo sacaría.
Suerte.
  #11 (permalink)  
Antiguo 23/04/2015, 00:30
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Validar 2 fechas guardadas en variables char [C]

Cita:
Iniciado por vangodp Ver Mensaje
tenga en cuenta que ni todos los meses tienen 28 días. El calculo es aproximado y puede fallar. Aun así no conozco nada más compacto.
Se puede conseguir un cálculo sin error con un par de cambios:

Código C:
Ver original
  1. int comparar(struct Fecha fechaDada, struct Fecha fechaInicio, struct Fecha fechaFin)
  2. {
  3.   unsigned long fecha = fechaDada.anio * 10000 + (fechaDada.mes * 100) + fechaDada.dia;
  4.   unsigned long inicio = fechaInicio.anio * 10000 + (fechaInicio.mes * 100) + fechaInicio.dia;
  5.   unsigned long fin = fechaFin.anio * 10000 + (fechaFin.mes * 100) + fechaFin.dia;
  6.  
  7.   if ( fecha >= inicio && fecha <= fin )
  8.   {
  9.     return 1;
  10.   }else{
  11.     return 0;
  12.   }
  13. }

Claro que también puedes pasarlo a una estructura tm y comparar:

Código C:
Ver original
  1. time_t FechaToTime( struct Fecha* fecha )
  2. {
  3.   struct tm info;
  4.  
  5.   info.tm_sec = 0;
  6.   info.tm_min = 0;
  7.   info.tm_hour = 0;
  8.   info.tm_mday = fecha->dia;
  9.   info.tm_mon = fecha->mes - 1;
  10.   info.tm_year = fecha->anio - 1900;
  11.   info.tm_isdst = -1;
  12.  
  13.   return mktime( &info );
  14. }
  15.  
  16. int comparar(struct Fecha fechaDada, struct Fecha fechaInicio, struct Fecha fechaFin)
  17. {
  18.    time_t fecha = FechaToTime( &fechaDada );
  19.    time_t inicio = FechaToTime( &fechaInicio );
  20.    time_t fin = FechaToTime( &fechaFin );
  21.  
  22.    if ( fecha >= inicio && fecha <= fin )
  23.   {
  24.     return 1;
  25.   }else{
  26.     return 0;
  27.   }
  28. }

Y luego, como tercera opción, siempre puedes hacer las comparaciones "a pelo":

Código C:
Ver original
  1. // el return puede ser:
  2. // == 0 -> Las dos fechas son iguales
  3. // > 0  -> fecha1 > fecha2
  4. // < 0  -> fecha1 < fecha2
  5. int comparar2Fechas( struct Fecha* fecha1, struct Fecha* fecha2 )
  6. {
  7.   int to_return =  fecha1->anio - fecha2->anio;
  8.  
  9.   if( to_return == 0 )
  10.     to_return = fecha1->mes - fecha2->mes;
  11.  
  12.   if( to_return == 0 )
  13.     to_return = fecha1->dia - fecha2->dia;
  14.  
  15.   return to_return;
  16. }
  17.  
  18. int comparar(struct Fecha fechaDada, struct Fecha fechaInicio, struct Fecha fechaFin)
  19. {
  20.   int to_return = 0;
  21.  
  22.   if( comparar2Fechas( &fechaDada, &fechaInicio ) >= 0 )
  23.   {
  24.     if( comparar2Fechas( &fechaDada, &fechaFin ) <= 0 )
  25.       to_return = 1;
  26.   }
  27.  
  28.   return to_return;
  29. }

Será por falta de alternativas :)

Un saludo
  #12 (permalink)  
Antiguo 23/04/2015, 05:15
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Validar 2 fechas guardadas en variables char [C]

Cita:
Se puede conseguir un cálculo sin error con un par de cambios:
quisiera entender la lógica de eso, pero yo para los cálculos soy fatal jaja XD


Me gusta lo de time_t FechaToTime( struct Fecha* fecha ) =D.
  #13 (permalink)  
Antiguo 23/04/2015, 05:34
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Validar 2 fechas guardadas en variables char [C]

Cita:
Iniciado por vangodp Ver Mensaje
quisiera entender la lógica de eso, pero yo para los cálculos soy fatal jaja XD
Los cálculos son sencillos:

  • lo que más peso tiene es el año, después el mes y finalmente el día.
  • El valor más alto para el día es 31, que tiene 2 dígitos.
  • El valor más alto para el mes es 12... otros dos dígitos.
  • El año ocupa 4 dígitos, aunque podría ocupar más sin problemas no creo que eso sea un problema a corto plazo.

Con estos datos lo que intento conseguir es un número tal que YYYYMMDD. Queda claro entonces que el mes tiene que estar multiplicado por 100 y el año por 10000. La suma de estos dos productos y el día dan como resultado la secuencia que te he comentado.

Una vez tienes el número construído saber si la fecha es mayor, menor o igual se reduce, al igual que en tu código, a una sencilla comparación.
  #14 (permalink)  
Antiguo 23/04/2015, 07:27
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Validar 2 fechas guardadas en variables char [C]

No hay problemas... ¡Tomo nota y me fio de ti sensei! =D

Gracias!

PD: Mi duda es por si podía fallar en años bisiestos o así por el estilo. XD
  #15 (permalink)  
Antiguo 23/04/2015, 07:54
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Validar 2 fechas guardadas en variables char [C]

Cita:
Iniciado por vangodp Ver Mensaje
PD: Mi duda es por si podía fallar en años bisiestos o así por el estilo. XD
Una secuencia en la que aparece un bisiesto:
20040228
20040229 <-- Día especial - Bisiesto
20040301

Como puedes ver no hay colisión entre fechas porque los diferentes elementos de la fecha (año, mes y día) no comparten dígitos.

El mecanismo es muy sencillo pero tiene como desventaja que deja huecos. Por ejemplo, la secuencia 20150440 no es válida porque abril no tiene 40 días...
  #16 (permalink)  
Antiguo 23/04/2015, 08:44
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Validar 2 fechas guardadas en variables char [C]

Hola.
Haciendo algo como esto, no se solucionaría el error de años bisiesto y la cantidad de días.-
Código C:
Ver original
  1. int tot_dias_reg[]={31,28,31,30,31,30,31,31,30,31,30,31};
  2. int tot_dias_bis[]={31,29,31,30,31,30,31,31,30,31,30,31};
Código C:
Ver original
  1. if ((anio%4 == 0 && anio%100 != 0) || (anio%400) == 0){
  2.      //buscar en tot_dias_bis según el número del mes
  3. else{
  4.      //buscar en tot_dias_reg según el número del mes
  5. }
Guardando la cantidad de días en una variable.-
Les pregunto para estar seguro no obstante lo estoy practicando.-

Daniel
  #17 (permalink)  
Antiguo 23/04/2015, 09:53
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Validar 2 fechas guardadas en variables char [C]

Debería funcionar, lo que no veo es para qué te puede servir a la hora de comparar dos fechas... se supone que has de partir de dos fechas válidas para hacer la comparación, no
  #18 (permalink)  
Antiguo 23/04/2015, 10:18
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Validar 2 fechas guardadas en variables char [C]

Hola.
Lo que propongo es simplemente por el error que ocasionaría si el año es bisiesto o no, según propone vangodp, pero esta es la pregunta del momento, ¿Uds. Están seguro de la importancia del que el año sea bisiesto?, estoy haciendo muchas prácticas y no veo la diferencia que el mes de febrero tenga 28/29 días.-
El primer dato importante es el año, si este es mayor o menor que la otra fecha, el resto no importa, si son iguales la importancia pasa al mes y luego al día.-

Daniel
  #19 (permalink)  
Antiguo 23/04/2015, 12:54
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Validar 2 fechas guardadas en variables char [C]

Cita:
Iniciado por rdv316 Ver Mensaje
Hola.
Lo que propongo es simplemente por el error que ocasionaría si el año es bisiesto o no, según propone vangodp, pero esta es la pregunta del momento, ¿Uds. Están seguro de la importancia del que el año sea bisiesto?, estoy haciendo muchas prácticas y no veo la diferencia que el mes de febrero tenga 28/29 días.-
El primer dato importante es el año, si este es mayor o menor que la otra fecha, el resto no importa, si son iguales la importancia pasa al mes y luego al día.-

Daniel
Depende de cómo compares las fechas.

Etiquetas: char, int, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:59.