# cat data.c #include int dia,mes,ano,n,i,cont,bis; main(){ int dia_(){ printf("Digite um dia do mes: "); scanf("%d",&dia); } int mes_(){ printf("Digite um mes do ano(de 1 a 12): "); scanf("%d",&mes); } int ano_(){ printf("Digite um ano entre 1900 e 2100: "); scanf("%d",&ano); } dia_(); mes_(); ano_(); if ((dia<1)||(dia>31)) { printf("O dia digitado nao eh valido, digite um dia entre 1 e 31"); dia_(); } if ((mes<1)||(mes>12)) { printf("O mes digitado nao eh valido, digite um ano entre 1 e 12"); mes_(); } if ((ano<1900)||(ano>2100)) { printf("O ano digitado nao eh valido, digite um ano entre 1900 e 2100"); ano_(); } if (((ano%4==0)&&(ano%100!=0))||(ano%400==0)) { bis=1; if ((mes==2)&&(dia>29)) { printf("Fevereiro nao tem dia 30 nem dia 31!"); dia_(); mes_(); } } else { bis=0; if ((mes==2)&&(dia>28)) { printf("Fevereiro nao tem dias maiores que 28 em anos nao bissextos"); dia_(); mes_(); } } if (((mes==4)||(mes==6)||(mes==9)||(mes==11))&&(dia==31)) { printf("Nao esqueca! abril, junho, setembro e novembro so tem 30 dias"); dia_(); } switch (mes) { case 1: printf("%d\n",dia); break; case 2: printf("%d\n",dia+31); break; default: for (i=1;i<=mes;i++){ if ((i==4) || (i==6) || (i==9) || (i==11)) { cont++; } } if (bis==1) { n=31*cont+29+(mes-cont-1)*30; } else { n=31*cont+28+(mes-cont-1)*30; } printf("%d\n",n); } }