|
/* Leer una fecha en formato dia-mes-año, averiguar si es correcta e indicar el día siguiente. */
#include <stdio.h>
#define TRUE 1
#define FALSE 0
int correcta_fecha(int,int,int);
int bisiesto(int);
void main()
{
int dia,mes,anio;
printf("Dame una fecha:(dd-mm-aaaa)");
scanf("%d-%d-%d",&dia,&mes,&anio);
if (!correcta_fecha(dia,mes,anio))
printf("\nLa fecha no es correcta.");
}
int correcta_fecha(int dia,int mes,int anio)
{
int d;
switch (mes)
{
case 4:
case 6:
case 9:
case 11:d=30;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: d=31;
break;
case 2: if (bisiesto(anio))
d=29;
else
d=28;
break;
default: return FALSE;
}
if (dia<=d)
{
if (dia<d)
dia++;
else
{
dia=1;
if (mes==12)
{
mes=1;
anio++;
}
else
mes++;
}
printf("\nEl proximo dia sera:%2d-%2d-%d.",dia,mes,anio);
return TRUE;
}
else
return FALSE;
}
/* Un ano es bisiesto cuando es multiplo de 4 pero no de 100 o multiplo de 400. */
int bisiesto(int anio)
{
if ((anio%4==0 && anio%100!=0) || (anio%400==0)) return TRUE;
return FALSE;
}
d
VOLVER
|