Escreva um programa que peça três inteiros, correspondentes a dia, mês e ano. Peça os números até conseguir valores que estejam na faixa correta (dias entre 1 e 31, mês entre 1 e 12 e ano entre 1900 e 2100). Verifique se o mês e o número de dias batem (incluindo verificação de anos bissextos). Se estiver tudo certo imprima o número que aquele dia corresponde no ano. Comente seu programa. PS: Um ano é bissexto se for divisível por 4 e não for divisível por 100, exceto para os anos divisíveis por 400, que também são bissextos.


include <stdio.h>
#include <stdlib.h>

int main()
{
int d,m,a;

printf ("\t\t\tCALENDARIO ANO BISSEXTO\n\n");

do{
do{
printf ("Entre com o dia [1,31]: ");
scanf ("%d", &d);
}while(d<1||d>31);

do{
printf ("Entre com o mes [1,12]: ");
scanf ("%d", &m);
}while(m<1||m>12);

if((d==30 || d==31) && (m==2)){
printf ("\nData Invalida, digite novamente.\n\n");
}
}while((d==30 || d==31) && (m==2));

if((d==30 || d==31) && (m==2))
{
printf ("Data Invalida.\n\n");
return(0);
}

do{
printf ("Entre com o ano [1900,2100]: ");
scanf ("%d", &a);
}while(a<1900||a>2100);

if(a%4==0 && (a%100!=0 || a%400==0)){
printf ("\nO ano %d e bissexto.\n", a);
}
printf ("\nData: %d/%d/%d \n\n", d,m,a);

return (0);
}

Nenhum comentário:

Postar um comentário