Advertisement
weldisalves

Lista 03 - exercício 31

Jun 16th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.02 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. /* 31. Exiba todas as datas de um calendário que estão entre duas datas informadas pelo usuário (dia, mês e ano).
  4. Suponha que as duas datas informadas sejam válidas. */
  5.  
  6. int main()#include<stdio.h>
  7.  
  8. /* 31. Exiba todas as datas de um calendário que estão entre duas datas informadas pelo usuário (dia, mês e ano).
  9. Suponha que as duas datas informadas sejam válidas. */
  10.  
  11. int main()
  12. {
  13.     int dia1,dia2,mes1,mes2,ano1,ano2;
  14.  
  15.     printf("\n Digite a data inicial: ");
  16.     scanf("%d %d %d",&dia1,&mes1,&ano1);
  17.  
  18.     __fpurge(stdin);
  19.     printf("\n Digite a data final: ");
  20.     scanf("%d %d %d",&dia2,&mes2,&ano2);
  21.  
  22.     if(ano1<=ano2)
  23.     {
  24.         for(;mes1<=mes2;mes1++)
  25.         {
  26.             if(ano1/4==0 || ano1/400==0)
  27.             {
  28.                 if(mes1==2)
  29.                 {
  30.                     for(;dia1<=29;dia1++)
  31.                     {
  32.                         printf("\n %d/%d/%d",dia1,mes1,ano1);getchar();
  33.                         if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  34.                     }
  35.                     dia1=1;
  36.                 }
  37.  
  38.             }else{
  39.                 if(mes1==2)
  40.                 {
  41.                     for(;dia1<=28;dia1++)
  42.                     {
  43.                         printf("\n %d/%d/%d",dia1,mes1,ano1);
  44.                         if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  45.                     }
  46.                     dia1=1;
  47.                 }
  48.             }
  49.             if(mes1==1||mes1==3||mes1==5||mes1==7||mes1==8||mes1==10||mes1==12)
  50.             {
  51.                 for(;dia1<=31;dia1++)
  52.                 {
  53.                     printf("\n %d/%d/%d",dia1,mes1,ano1);
  54.                     if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  55.                 }
  56.                 if(mes1==12)
  57.                 {
  58.                     mes1=0;
  59.                     ano1++;
  60.                 }
  61.                 dia1=1;
  62.             }else if(mes1==4||mes1==6||mes1==9||mes1==11)
  63.                 {
  64.                     for(;dia1<=31;dia1++)
  65.                     {
  66.                         printf("\n %d/%d/%d",dia1,mes1,ano1);
  67.                         if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  68.                     }
  69.                 }
  70.  
  71.  
  72.         }
  73.     }
  74. }
  75. {
  76.     int dia1,dia2,mes1,mes2,ano1,ano2;
  77.  
  78.     printf("\n Digite a data inicial: ");
  79.     scanf("%d %d %d",&dia1,&mes1,&ano1);
  80.  
  81.     __fpurge(stdin);
  82.     printf("\n Digite a data final: ");
  83.     scanf("%d %d %d",&dia2,&mes2,&ano2);
  84.  
  85.     if(ano1<=ano2)
  86.     {
  87.         for(;mes1<=mes2;mes1++)
  88.         {
  89.             if(ano1%4==0 || ano1%400==0)
  90.             {
  91.                 if(mes1==2)
  92.                 {
  93.                     for(;dia1<=29;dia1++)
  94.                     {
  95.                         printf("\n %d/%d/%d",dia1,mes1,ano1);
  96.                         if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  97.                     }
  98.                     dia1=1;
  99.                 }
  100.  
  101.             }else{
  102.                 if(mes1==2)
  103.                 {
  104.                     for(;dia1<=28;dia1++)
  105.                     {
  106.                         printf("\n %d/%d/%d",dia1,mes1,ano1);
  107.                         if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  108.                     }
  109.                     dia1=1;
  110.                 }
  111.             }
  112.             if(mes1==1||mes1==3||mes1==5||mes1==7||mes1==8||mes1==10||mes1==12)
  113.             {
  114.                 for(;dia1<=31;dia1++)
  115.                 {
  116.                     printf("\n %d/%d/%d",dia1,mes1,ano1);
  117.                     if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  118.                 }
  119.                 if(mes1==12)
  120.                 {
  121.                     mes1=0;
  122.                     ano1++;
  123.                 }
  124.                 dia1=1;
  125.             }else if(mes1==4||mes1==6||mes1==9||mes1==11)
  126.                 {
  127.                     for(;dia1<=31;dia1++)
  128.                     {
  129.                         printf("\n %d/%d/%d",dia1,mes1,ano1);
  130.                         if(dia1==dia2&&mes1==mes2&&ano1==ano2) break;
  131.                     }
  132.                 }
  133.  
  134.  
  135.         }
  136.     }
  137.     return 0;
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement