
epdinho-
By: a guest on
Apr 29th, 2012 | syntax:
C | size: 5.55 KB | hits: 22 | expires: Never
#include <stdio.h>
#include <string.h>
int main ()
{
int nDia , nMes, nAno, aDia, aMes, aAno, totald, i, codano, codmes, iResto;
char dSemana [14]; // variƔvel para verificaƧao de dia da semana.
printf ("Digite o dia do seu nascimento\n");
scanf ("%d", &nDia);
if(nDia ==0){
printf ("Obrigado e Volte Sempre!\n");
system ("PAUSE");
exit (0);
}
printf ("Digite o mes do seu nascimento\n");
scanf ("%d", &nMes);
printf ("Digite o ano do seu nascimento\n");
scanf ("%d", &nAno);
printf ("Digite o dia atual\n");
scanf ("%d", &aDia);
printf ("Digite o mes atual\n");
scanf ("%d", &aMes);
printf ("Digite o ano atual\n");
scanf ("%d", &aAno);
for(i=nAno; i<=aAno; i++){
while (1==1) {
while (1==1) {
totald++;
if(nMes ==2){
if( nDia ==28){
if((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) nDia++;
else break;
}
}
if (nDia ==30){
if(nMes==4 || nMes== 6 || nMes== 9 || nMes==11){
break;
}
else{
totald++;
break;
}
}
nDia++;
}
nDia = 1;
if(nMes == aMes && i== aAno)break;
if(nMes == 12)break;
nMes++;
}
nMes = 1;
}
switch (nMes)
{
case 1:
codmes = 1;
break;
case 2:
codmes = 4;
break;
case 3:
codmes = 4;
break;
case 4:
codmes = 0;
break;
case 5:
codmes = 2;
break;
case 6:
codmes = 5;
break;
case 7:
codmes = 0;
break;
case 8:
codmes = 3;
break;
case 9:
codmes = 6;
break;
case 10:
codmes = 1;
break;
case 11:
codmes = 4;
break;
case 12:
codmes = 6;
break;
}
codano = (((nAno % 100) / 4) + ((nAno % 100) % 7)) % 7;
if ((nAno % 4 == 0 && nAno % 100 != 0) || nAno % 400 == 0)
iResto = ((nDia + codmes + codano) % 7) - 1;
else
iResto = (nDia + codmes + codano) % 7;
switch (iResto)
{
case 0:
strcpy(dSemana, "sabado");
break;
case 1:
strcpy(dSemana, "domingo");
break;
case 2:
strcpy(dSemana, "segunda-feira");
break;
case 3:
strcpy(dSemana, "terca-feira");
break;
case 4:
strcpy(dSemana, "quarta-feira");
break;
case 5:
strcpy(dSemana, "quinta-feira");
break;
case 6:
strcpy(dSemana, "sexta-feira");
break;
}
printf ("Voce viveu %d Dias e voce nasceu em um(a) %s\n", totald, dSemana);
system ("PAUSE");
return 0;
}