ep1-6452962.c


/********************************************************/
/* Aluno: Pedro Nalesso Jorge */
/* Numero USP: 6452962 */
/* Exercicio-Programa 1 -- 05/11/1988 */
/* MAC115 -- 2008 -- IFUSP, turma 21 -- Prof. Reverbel */
/* Compilador: DevC++ versao 4.9.9.2 */
/********************************************************/
#include <stdio.h>
int main ()
{
    int dia_hoje, mes_hoje, ano_hoje, dia, mes, ano, max_dia, max_dia_hoje=0, n=0, dias, contador=0, ano_hoje2;
    printf("Bem vindo ao programa DataNasc!\n");
    while(n==0){        /*loop ate a data estar correta*/
                printf("Digite o dia de hoje:\n");
                scanf("%d",&dia_hoje);
                printf("Digite o mes atual:\n");
                scanf("%d",&mes_hoje);
                printf("Digite o ano atual:\n");
                scanf("%d",&ano_hoje);
                if(dia_hoje<=0||dia_hoje>31||mes_hoje<=0||mes_hoje>12||ano_hoje<0){
                                                                                   printf("Esta data esta incorreta!\n");
                                                                                   }
                else{
                     if(mes_hoje==4||mes_hoje==6||mes_hoje==9||mes_hoje==11){
                                                                             max_dia_hoje=30;
                                                                             }
                     else{
                          max_dia_hoje=31;
                          }
                     if(mes_hoje==2){
                                     if((ano_hoje%4==0&&ano_hoje%100!=0)||(ano_hoje%400==0)){
                                                                                             max_dia_hoje=29;
                                                                                             }
                                     else{
                                          max_dia_hoje=28;
                                          }
                                     }
                     if(dia_hoje>max_dia_hoje){
                                               printf("Esta data esta incorreta!\n");
                                               }
                     if(dia_hoje>0&&dia_hoje<=max_dia_hoje&&mes_hoje>0&&mes_hoje<=12&&ano_hoje>0){
                                                                                                  printf("Esta data esta correta!\n");
                                                                                                  n++;
                                                                                                  }
                     }
                }                 /*saiu do loop, data de hoje correta*/
                while(n==1){
                            printf("Digite o dia do seu nascimento:\n");
                            scanf("%d",&dia);
                            if(dia==0){
                                       printf("Obrigado por usar os nossos servicos. Volte sempre!");
                                       n++;
                                       }
                            else{
                                 printf("Digite o mes do seu nascimento:\n");
                                 scanf("%d",&mes);
                                 printf("Digite o ano do seu nascimento:\n");
                                 scanf("%d",&ano);
                                 if(dia<=0||dia>31||mes<=0||mes>12||ano<0){
                                                                           printf("Esta data esta incorreta!\n");
                                                                           }
                                 else{
                                      if(mes==4||mes==6||mes==9||mes==11){
                                                                          max_dia=30;
                                                                          }
                                      else{
                                           max_dia=31;
                                           }
                                      if(mes_hoje==2){
                                                      if((ano%4==0&&ano%100!=0)||(ano%400==0)){
                                                                                               max_dia=29;
                                                                                               }
                                                      else{
                                                           max_dia=28;
                                                           }
                                                      }
                                      if(max_dia<dia){
                                                      printf("Esta data esta incorreta!\n");
                                                      }
                                      if(dia>0&&dia<=31&&mes>0&&mes<=12&&ano>0&&dia<=max_dia){
                                                                                              ano_hoje2=ano_hoje;
                                                                                              dias=(ano_hoje-ano)*365-365; /*contagem de dias de anos inteiros*/
                                                                                              while(ano_hoje2>ano){
                                                                                                                  if((ano_hoje2%4==0&&ano_hoje2%100!=0)||(ano_hoje2%400==0)){     /*contagem de anos bissextos entre os anos*/
                                                                                                                                                                          contador++;
                                                                                                                                                                          }
other                                                                                                                  ano_hoje2--;
                                                                                                                  }
                                                                                              if(ano_hoje==ano&&mes<2&&mes_hoje>=3&&((ano_hoje%4==0&&ano_hoje%100!=0)||(ano_hoje%400==0))){ /*condicao para mesmo ano, sendo bissexto*/
                                                                                                                                                                                            contador++;
                                                                                                                                                                                            }
                                                                                              if(ano_hoje==ano){
                                                                                                                dias=0; /* por causa da formula de dias*/
                                                                                                                }
                                                                                              if(dias<0){
                                                                                                         printf("Esta data esta incorreta!\n");
                                                                                                         }
                                                                                              if(dias>=0){
other                                                                                                         dias=dias+contador+dia_hoje;
                                                                                                         if(mes==1){
                                                                                                                    dias=max_dia-dia_hoje+1;
                                                                                                                    }
                                                                                                         if(mes==2){
                                                                                                                    dias=dias+31;
                                                                                                                    }
                                                                                                         if(mes==3){
                                                                                                                    dias=dias+31+28;
                                                                                                                    }
                                                                                                         if(mes==4){
                                                                                                                    dias=dias+31+28+31;
                                                                                                                    }
                                                                                                         if(mes==5){
                                                                                                                    dias=dias+31+28+31+30;
                                                                                                                    }
                                                                                                         if(mes==6){
                                                                                                                    dias=dias+31+28+31+30+31;
                                                                                                                    }
                                                                                                         if(mes==7){
                                                                                                                    dias=dias+31+28+31+30+31+30;
                                                                                                                    }
                                                                                                         if(mes==8){
                                                                                                                    dias=dias+31+28+31+30+31+30+31;
                                                                                                                    }
                                                                                                         if(mes==9){
                                                                                                                    dias=dias+31+28+31+30+31+30+31+31;
                                                                                                                    }
                                                                                                         if(mes==10){
                                                                                                                     dias=dias+31+28+31+30+31+30+31+31+30;
                                                                                                                     }
                                                                                                         if(mes==11){
                                                                                                                     dias=dias+31+28+31+30+31+30+31+31+30+31;
                                                                                                                     }
                                                                                                         if(mes==12){
                                                                                                                     dias=dias+31+28+31+30+31+30+31+31+30+31+30;
                                                                                                                     }
                                                                                                         if(mes_hoje==1){
                                                                                                                         dias=dias+dia_hoje+31+30+31+30+31+31+30+31+30+31+28;
                                                                                                                         }
                                                                                                         if(mes_hoje==2){
                                                                                                                         dias=dias+dia_hoje+31+30+31+30+31+31+30+31+30+31;
                                                                                                                         }
                                                                                                         if(mes_hoje==3){
                                                                                                                         dias=dias+dia_hoje+31+30+31+30+31+31+30+31+30;
                                                                                                                         }
                                                                                                         if(mes_hoje==4){
other                                                                                                                         dias=dias+dia_hoje+31+30+31+30+31+31+30+31;
                                                                                                                         }
                                                                                                         if(mes_hoje==5){
                                                                                                                         dias=dias+dia_hoje+31+30+31+30+31+31+30;
                                                                                                                         }
                                                                                                         if(mes_hoje==6){
                                                                                                                         dias=dias+dia_hoje+31+30+31+30+31+31;
                                                                                                                         }
                                                                                                         if(mes_hoje==7){
                                                                                                                         dias=dias+dia_hoje+31+30+31+30+31;
                                                                                                                         }
                                                                                                         if(mes_hoje==8){
                                                                                                                         dias=dias+dia_hoje+31+30+31+30;
                                                                                                                         }
                                                                                                         if(mes_hoje==9){
                                                                                                                         dias=dias+dia_hoje+31+30+31;
                                                                                                                         }
                                                                                                         if(mes_hoje==10){
                                                                                                                          dias=dias+dia_hoje+31+30;
                                                                                                                          }
                                                                                                         if(mes_hoje==11){
                                                                                                                          dias=dias+dia_hoje+31;
                                                                                                                          }
                                                                                                         if(mes_hoje==12){
                                                                                                                          dias=dias+dia_hoje;
                                                                                                                          }
                                                                                                         if((ano_hoje%4==0&&ano_hoje%100!=0)||(ano_hoje%400==0)){
                                                                                                                                                                 if(mes_hoje>=3||(mes_hoje==2&&dia_hoje==29)){
                                                                                                                                                                                                              dias++; /*ano bissexto*/
                                                                                                                                                                                                              }
                                                                                                                                                                 }                                                                                                                                                                 
                                                                                                         printf("Parabens! Voce nasceu em um dia da semana, que eu ainda nao sei, e viveu %d dias ate hoje!\n",dias);                                                                                                                           
                                                                                                         }
                                                                                              }
                                      }/*segundo else*/
                                 }/*primeiro else*/
                           }/*saiu do loop, data do aniversario correta*/
                           return 0;
}