Ejercicio de lenguaje C - Validar fecha

Programacion

19.11.2018 a las 08:21 hs 0 296 0

Escribir en lenguaje C un programa que:

1º) Pida por teclado una fecha en tres variables: día, mes y año (datos enteros).

2º) Muestre por pantalla:

"FECHA CORRECTA", en el caso de que la fecha sea válida.
"FECHA INCORRECTA", en el caso de que la fecha no sea válida.

Nota 1: Para que una fecha sea válida, se tiene que cumplir que:

El mes debe ser mayor o igual que 1 y menor o igual que 12.
El día debe ser mayor o igual que 1 y menor o igual que un número, el cual dependerá del mes y año introducidos por el usuario.

Nota 2:

Tienen 31 días: enero, marzo, mayo, julio, agosto, octubre y diciembre.
Tienen 30 días: abril, junio, septiembre y noviembre.
Tiene 29 días: febrero (si el año es bisiesto).
Tiene 28 días: febrero (si el año no es bisiesto).

Nota 3: Son bisiestos todos los años múltiplos de 4, excepto aquellos que son múltiplos de 100 pero no de 400.

En pantalla se verá, por ejemplo:




Ahora bien, si la fecha es correcta, se verá:




Solución 1: anidando instrucciones if y switch


Cita:

/* Programa: Validar fecha (Solución) */

#include
#include

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

printf( "
Introduzca d%ca: ", 161 );
scanf( "%d", &dia );
printf( "
Introduzca mes: " );
scanf( "%d", &mes );
printf( "
Introduzca a%co: ", 164 );
scanf( "%d", &anio );

if ( mes >= 1 && mes <= 12 )
{
switch ( mes )
{
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 : if ( dia >= 1 && dia <= 31 )
printf( "
FECHA CORRECTA" );
else
printf( "
FECHA INCORRECTA" );
break;

case 4 :
case 6 :
case 9 :
case 11 : if ( dia >= 1 && dia <= 30 )
printf( "
FECHA CORRECTA" );
else
printf( "
FECHA INCORRECTA" );
break;

case 2 : if( anio % 4 == 0 && anio % 100 != 0 || anio % 400 == 0 )
if ( dia >= 1 && dia <= 29 )
printf( "
FECHA CORRECTA" );
else
printf( "
FECHA INCORRECTA" );
else
if ( dia >= 1 && dia <= 28 )
printf( "
FECHA CORRECTA" );
else
printf( "
FECHA INCORRECTA" );
}
}
else
printf( "
FECHA INCORRECTA" );

getch(); /* Pausa */

return 0;
}


interblink

Posteado por:

interblink

Administrador

0 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.
Para comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!