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

Funcion de Validacion para Fecha!

Estas en el tema de Funcion de Validacion para Fecha! en el foro de C/C++ en Foros del Web. Saludos compañeros, ya logré funcionar el tema de las fechas... ahora tengo el siguiente problema... Tengo esta funcion: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C: Ver original void ...
  #1 (permalink)  
Antiguo 08/02/2010, 15:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 16 años, 6 meses
Puntos: 0
Funcion de Validacion para Fecha!

Saludos compañeros, ya logré funcionar el tema de las fechas... ahora tengo el siguiente problema...

Tengo esta funcion:

Código C:
Ver original
  1. void Validar_fecha(int cadena,int longitud,int PosX, int PosY)
  2. {
  3.  
  4.  int i=0,caracter;
  5.   //Introducimos el espacio por pantalla
  6.  int puntos;
  7.  posicion(PosX,PosY);
  8.  for(puntos=0;puntos<longitud;puntos++)printf("");
  9.  posicion(PosX,PosY);
  10.  puntos=0;
  11.  do
  12.  {
  13.   posicion(PosX+i,PosY);
  14.   caracter=getch();
  15.   if(caracter>=48&&caracter<=57){  printf("%c",caracter); cadena=caracter; i++; }
  16.  
  17.   //Borado de datos
  18.   if(caracter==8 && i>0)
  19.    {i--;cadena=' '; posicion(PosX+i,PosY);printf("");posicion(PosX+i,PosY)}//Eliminamos digito en pantalla
  20.  
  21.  }while (caracter!=13 && i<longitud);
  22. }

Esta funcion lo que hace es limitar el numero de valores y que solo sean entre el 1 y el 9 (pulsaciones de teclado)

Bien pues la he implementado con esta funcion:

Código C:
Ver original
  1. struct data {
  2. int dia;
  3. int ano;
  4. int mes;
  5. };
  6.  
  7. void Bisiesto(struct data info) {
  8.  
  9.   if ( info.mes == 2 && info.ano % 4 == 0 && info.ano % 100 != 0 || info.ano % 400 == 0 || info. dia > 29 ) {
  10.             info.dia = 29;
  11.             //  printf("El año es Bisiesto, la fecha es :: %i-%i-%i\n", info.dia, info.mes, info.ano);
  12.       } else if ( info. dia > 29 ) {
  13.               info.dia = 30;
  14.           //    printf("El año Bisiesto, la fecha es :: %i-%i-%i\n", info.dia, info.mes, info.ano);
  15.       } else {
  16.             //  printf("El año Bisiesto, la fecha es :: %i-%i-%i\n", info.dia, info.mes, info.ano);
  17.       }
  18. };
  19.  
  20. void Mes_menor(struct data info) {
  21.  
  22.             if ( info.mes == 1 || info.mes == 3 || info.mes == 4 || info.mes == 8 && info.dia > 30 ) {
  23.               info.dia = 30;
  24.              // printf("Hoy estamos a :: %i-%i-%i\n", info.dia, info.mes, info.ano);
  25.             } else if ( info.mes == 5 || info.mes == 6 || info.mes == 7 || info.mes == 9 ) {
  26.             //  printf("Hoy estamos a :: %i-%i-%i\n", info.dia, info.mes, info.ano);
  27.           }
  28. }
  29.  
  30. int validar_fecha()
  31. {
  32.  
  33. struct data info;
  34.  
  35.        //Validacion de la fecha
  36.   posicion(15,14);  fprintf(stdout,"*Fecha Promocion: (DD/MM/AAAA)");
  37.  
  38.   /*do { */  Validar_fecha(info.dia,2,34,14); /* }while( info.dia < 31 || info.dia > 0 ); */
  39.   /*do { */   Validar_fecha(info.mes,2,37,14);  /*}while( info.mes < 12 || info.mes > 0 );*/
  40.   /*do { */   Validar_fecha(info.ano,4,40,14); /*}while( info.ano < 2012 || info.ano > 2008 );*/
  41.  
  42.    if ( info.dia > 31 || info.dia < 0 || info. mes > 12 || info. mes < 0 || info.ano < 0 ) {  error=7; box_error();  validar_fecha(); }
  43.  
  44.  
  45. Bisiesto(info);
  46. Mes_menor(info);
  47.  
  48. struct datos info_datos[SIZE];
  49.  
  50.   //Pasamos de INT a CHAR
  51.     itoa(info.dia, info_datos[0].dia, 10);
  52.     itoa(info.mes, info_datos[0].mes, 10);
  53.     itoa(info.ano, info_datos[0].ano, 10);
  54.  
  55. printf("Fecha de Promocion = ( %s / %s / %s )", info_datos[0].dia, info_datos[0].mes, info_datos[0].ano);
  56.  
  57.     Sleep(1000);
  58.  
  59. };

Para juntarlas lo unico que hago en un principio es llamar a la funcion

validar_fechas();

y lo que hace que se metan en el array es lo siguiente:

Código C:
Ver original
  1. Validar_fecha(info.dia,2,34,14);

pero no se porque NO me funciona nada!
=S no se que hacer

gracias ;)
__________________
---> Webnox.es

Etiquetas: funcion, fechas
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 01:15.