Tengo esta funcion:
Código C:
Ver original
void Validar_fecha(int cadena,int longitud,int PosX, int PosY) { int i=0,caracter; //Introducimos el espacio por pantalla int puntos; posicion(PosX,PosY); posicion(PosX,PosY); puntos=0; do { posicion(PosX+i,PosY); //Borado de datos if(caracter==8 && i>0) {i--;cadena=' '; posicion(PosX+i,PosY);printf("");posicion(PosX+i,PosY)}//Eliminamos digito en pantalla }while (caracter!=13 && i<longitud); }
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
struct data { int dia; int ano; int mes; }; void Bisiesto(struct data info) { if ( info.mes == 2 && info.ano % 4 == 0 && info.ano % 100 != 0 || info.ano % 400 == 0 || info. dia > 29 ) { info.dia = 29; // printf("El año es Bisiesto, la fecha es :: %i-%i-%i\n", info.dia, info.mes, info.ano); } else if ( info. dia > 29 ) { info.dia = 30; // printf("El año Bisiesto, la fecha es :: %i-%i-%i\n", info.dia, info.mes, info.ano); } else { // printf("El año Bisiesto, la fecha es :: %i-%i-%i\n", info.dia, info.mes, info.ano); } }; void Mes_menor(struct data info) { if ( info.mes == 1 || info.mes == 3 || info.mes == 4 || info.mes == 8 && info.dia > 30 ) { info.dia = 30; // printf("Hoy estamos a :: %i-%i-%i\n", info.dia, info.mes, info.ano); } else if ( info.mes == 5 || info.mes == 6 || info.mes == 7 || info.mes == 9 ) { // printf("Hoy estamos a :: %i-%i-%i\n", info.dia, info.mes, info.ano); } } int validar_fecha() { struct data info; //Validacion de la fecha /*do { */ Validar_fecha(info.dia,2,34,14); /* }while( info.dia < 31 || info.dia > 0 ); */ /*do { */ Validar_fecha(info.mes,2,37,14); /*}while( info.mes < 12 || info.mes > 0 );*/ /*do { */ Validar_fecha(info.ano,4,40,14); /*}while( info.ano < 2012 || info.ano > 2008 );*/ if ( info.dia > 31 || info.dia < 0 || info. mes > 12 || info. mes < 0 || info.ano < 0 ) { error=7; box_error(); validar_fecha(); } Bisiesto(info); Mes_menor(info); struct datos info_datos[SIZE]; //Pasamos de INT a CHAR printf("Fecha de Promocion = ( %s / %s / %s )", info_datos[0].dia, info_datos[0].mes, info_datos[0].ano); Sleep(1000); };
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
Validar_fecha(info.dia,2,34,14);
pero no se porque NO me funciona nada!
=S no se que hacer
gracias ;)