Pages

miércoles, 23 de enero de 2013

Comprobar si una fecha es válida, código en C

Problema:
Realizar un programa en C que permita al usuario ingresar el día, mes y año de una determinada fecha. El programa debe imprimir en pantalla indicando si la fecha es válida o invalida. Se debe tener en cuenta los años bisiestos.
Solución:
Codigo Fuente en C
#include <stdio.h>
#define true 1
#define false 0
typedef char bool;

int main() {
 int d,m,y, i;
 bool bisiesto = false;

 printf("Introduce el dia: ");
 scanf("%d", &d);
 printf("Introduce el mes: ");
 scanf("%d", &m);
 printf("Introduce el año: ");
 scanf("%d", &y);

 //comprobamos si el año es bisiesto
 if(y%4==0 && y%100!=100 || y%400==0)
        bisiesto = true;

    //comprobamos que los datos ingresados esten en un rango valido
    if(d>0 && d<32 && m>0 && m<13 && y>0){
        if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
        {
           printf("\nFecha valida");
        }
        else
        {
            if(m==2 && d<30 && bisiesto)
                printf("\nFecha valida");
            else if(m==2 && d<29 && !bisiesto)
                printf("\nFecha valida");
            else if(m!=2 && d<31)
                printf("\nFecha valida");
            else
                printf("\nFecha no valida");
        }
    }
    else
        printf("\nFecha no valida");
}

2 comentarios:

maO dijo...

bien hecho este codigo me funciono, sigue asi, te felicito y muchas gracias suerte

Jose Barba dijo...

No puedes hacer un cronometro en C tambien?

Publicar un comentario en la entrada