Ver Mensaje Individual
  #37 (permalink)  
Antiguo 06/06/2008, 17:18
Avatar de hgp147
hgp147
 
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Respuesta: FAQs del lenguaje C y sus variantes

Pregunta: Cómo validar fechas?
Respuesta: Con este código:

Código:
#include<stdio.h>
#include<conio.h>
int anioBisiesto(int);
int cantDias(int,int);
int esFechaCorrecta(int, int, int);

int main(){
    
int anio, mes, dia;

printf("Ingrese fecha en formato dd/mm/yyyy: ");

scanf("%d/%d/%d", &dia, &mes, &anio);


if(esFechaCorrecta(dia,mes,anio) == 1)

printf("Ok");

else

printf("No");

getch();

}



int anioBisiesto(int anio){

if((anio % 100) % 4 == 0)
         
return 1;
                
else

return 0;

}





int cantDias(int mes, int bisiesto){
    
int dias;

if(mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 11){

dias = 31;      
       
}else{

if(mes == 2){
       
if(bisiesto == 1){
                
dias = 29;

}else{
      
dias = 28;

}

}else{

dias = 30;
      
}            
}

return dias;

}







int esFechaCorrecta(int dia, int mes, int anio){
    
int bisiesto, cant_Dias;

bisiesto = anioBisiesto(anio);

cant_Dias = cantDias(mes, bisiesto);
    
if(anio > 1900 && anio < 2009 && mes <= 12 && mes >= 1 && dia <= cant_Dias && dia >=1)

return 1;

else

return 0;
    
}
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/