elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  fechas guardadas en variables char validar ">=, <="
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: fechas guardadas en variables char validar ">=, <="  (Leído 2,102 veces)
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
fechas guardadas en variables char validar ">=, <="
« en: 21 Abril 2015, 18:25 pm »

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
  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. }
  57.  
Saludos.
Daniel


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: fechas guardadas en variables char validar ">=, <="
« Respuesta #1 en: 21 Abril 2015, 21:39 pm »

¿Forma más práctica? Puedes hacer una estructura donde almacenar las fechas por partes, y hacer funciones acordes a esa estructura.


En línea

DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: fechas guardadas en variables char validar ">=, <="
« Respuesta #2 en: 21 Abril 2015, 22:47 pm »

Hola ivancea96.
Gracias por ocuparte, lo que me propones es interesante sólo que antes lo voy a intentar de esta manera y veré que resulta.-

a = 30/01/2015 
b = 01/02/2015

Ahora mismo tengo un barullo respetable para validar por ej. a[9] con b[9] cuando llegue a a[6] y b[6] sabré si el año es igual o distinto y luego continuar con el mes y si es igual continuar con el día.-
     
Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: fechas guardadas en variables char validar ">=, <="
« Respuesta #3 en: 22 Abril 2015, 11:18 am »

Ese es el problema, que trabajar con char* no es tan intuitivo como trabajar con enteros. Creando una estructura podrás hacer comprobaciones simples.
En línea

DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: fechas guardadas en variables char validar ">=, <="
« Respuesta #4 en: 22 Abril 2015, 18:29 pm »

Hola.
Tienes toda la razón, lo que pasa es que cuando uno está estudiando por querer reinventar la rueda o por desconocimiento cometemos esos errores.
Estoy haciendo la función para validar las fechas para la consulta, como hasta el momento tengo muchos if ni bien funcione la voy a exponer para que me digas (si lo deseas) como puedo optimizarla.-
   
Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: fechas guardadas en variables char validar ">=, <="
« Respuesta #5 en: 22 Abril 2015, 20:35 pm »

Hola.
Al fin encontré la solución y puedo continuar sin pérdidas de tiempo, no pongo el código porque lo encontré en otro foro y desconozco si se puede, sería interesante volcarlo aquí porque es muy conciso, unas pocas líneas, aclaro que lo digo para los que estamos estudiando porque todos los expertos de este foro seguramente lo conocen, de echo los autores son rir3760 y vangodp.- ;-) ;-) ;-)     
   
Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al llamar la tabla "char"
PHP
XXXXXX 6 3,008 Último mensaje 14 Junio 2010, 01:00 am
por XXXXXX
recursos visual basic, """"""proceso inmortal"""""
Análisis y Diseño de Malware
Dark4ngel 7 13,153 Último mensaje 3 Noviembre 2011, 10:42 am
por Dark4ngel
Pasar partidas guardadas de version "dudosa" a version Steam
Juegos y Consolas
vincent13m 0 3,315 Último mensaje 20 Noviembre 2012, 16:25 pm
por vincent13m
China prohíbe pseudónimos "controvertidos" como "Obama" o "Putin" en internet
Noticias
wolfbcn 0 6,421 Último mensaje 5 Febrero 2015, 14:58 pm
por wolfbcn
MVC: ¿Dónde validar datos con "profundidad"?
PHP
Alex_bro 0 1,850 Último mensaje 6 Marzo 2016, 19:22 pm
por Alex_bro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines