Advertisement
Guest User

Dia_Do_Ano

a guest
Feb 18th, 2011
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. char ano_bissexto(unsigned int ano)// Baseado em: http://www.go4expert.com/forums/showthread.php?t=2099
  5. {
  6.  
  7.  if(ano%400 ==0 || (ano%100 != 0 && ano%4 == 0))
  8.     return 1;
  9.  return 0;
  10. }
  11.  
  12. int main()
  13. {
  14.    //variaveis
  15.    unsigned int d,m,t=0,a;
  16.  
  17.    printf("\nDigite o dia(dd)\n");
  18.    scanf("%d",&d);
  19.    printf("\nDigite o mes(mm)\n");
  20.    scanf("%d",&m);
  21.    printf("\nDigite o ano (yyyy)\n");
  22.    scanf("%d",&a);
  23.  
  24.    if((d>31) || (m>12) || (!d) || (!m) || (!a) ||//Casos absurdos
  25.         ((m<8) && (!(m%2)) && (d>30)) ||//meses pares ATé julho tem no máximo 30 dias
  26.         ((m>7) && (m%2) && (d>30))  ||//meses ímpares após julho tem no máximo 30 dias
  27.         (!(ano_bissexto(a)) && (m==2) && (d >28)) )//Apenas anos bissextos tem 29 dias em fevereiro
  28.     {
  29.         printf("\nerro\n");
  30.         return 0;
  31.     }
  32.  
  33.     switch(m)
  34.     {
  35.         case 12:
  36.             t+=30;
  37.         case 11:
  38.             t+=31;
  39.         case 10:
  40.             t+=30;
  41.         case 9:
  42.             t+=31;
  43.         case 8:
  44.             t+=31;
  45.         case 7:
  46.             t+=30;
  47.         case 6:
  48.             t+=31;
  49.         case 5:
  50.             t+=30;
  51.         case 4:
  52.             t+=31;
  53.         case 3:
  54.             if((ano_bissexto(a)))
  55.                 t+=29;
  56.             else
  57.                 t+=28;
  58.         case 2:
  59.             t+=31;
  60.         case 1:
  61.             t+=d;
  62.         break;
  63.     }
  64.  
  65.    printf("\n\ntotal de dias = %d\n\n",t);
  66.     system("pause");
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement