Ir ao conteúdo
  • Cadastre-se

ghetsys

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Tudo que ghetsys postou

  1. Já tenho boa parte do código pronto, funcional entre 2 anos diferentes, o problema é que, quando os anos são iguais ocorre erros. De 01/01/2001 a 02/01/2001 por exemplo, seria 0 dias, mas resulta em 365. Eu fiz uma limitação para ser o ano for igual, mas acaba nessa soma de 365, então pensei em tirar 365 se o ano for igual, e novamente resulta em 365. Alguém consegue me ajudar em identificar o que fiz de errado?
  2. Obrigado, o erro então estava na contagem dos dias totais no ano de inicio e no ano final?
  3. Olá a todos, estou precisando de ajuda para finalizar um programa. Eu recebo o dia, mês e ano de nascimento de alguém e o atual, e então vejo a diferença de dias entre as duas datas. O problema é que, a data chega perto, mas das diversas tentativas que fiz, nunca chega na data exata, e em alguns casos, até passa da data certa. Meus testes por enquanto: 7/7/2001 a 14/5/2019 : 6847 dias (o resultado teria que ser 6520) 1/1/2001 a 14/5/2019 : 7028 dias (o resultado teria que ser 6707) O problema que surge (que facilitaria muito) é que eu não posso usar comandos que façam a diferença entre duas datas ou algo do tipo. Caso consigam me ajudar, muito obrigado. #include <stdlib.h> #include <stdio.h> int DiaN; int MesN; int AnoN; int DiaA; int MesA; int AnoA; int TotalDiasA; int TotalDiasN; int TotalDias; int cta; int diasMes[12]; main(){ // atribuir dias aos meses diasMes[0] = 31; diasMes[1] = 28; diasMes[2] = 31; diasMes[3] = 30; diasMes[4] = 31; diasMes[5] = 30; diasMes[6] = 31; diasMes[7] = 31; diasMes[8] = 30; diasMes[9] = 31; diasMes[10] = 30; diasMes[11] = 31; printf("\n Digite o ano de aniversario: "); scanf("%d", &AnoN); //se for bissexto fev tem 29 if(AnoN % 4 == 0){ diasMes[1] = 29; } while(MesN < 1 || MesN > 12){ printf("\n Digite o mes de aniversario: "); scanf("%d", &MesN); } while(DiaN < 1 || DiaN > diasMes[MesN - 1]){ printf("\n Digite o dia de aniversario: "); scanf("%d", &DiaN); } for(cta = MesN; cta < 12 ; cta++){ if(MesN == 12){ TotalDiasN = TotalDiasN + (diasMes[11] - DiaN); break; }else{ TotalDiasN = (TotalDiasN + diasMes[cta]); } } //voltar fevereiro pra 28 pra validar diasMes[1] = 28; while(AnoA < AnoN || (AnoA - AnoN) >= 150){ printf("\n Digite o ano atual: "); scanf("%d", &AnoA); } //ver se tb é bissexto if(AnoA % 4 == 0){ diasMes[1] = 29; } while(MesA < 1 || MesA > 12){ printf("\n Digite o mes atual: "); scanf("%d", &MesA); } while(DiaA < 1 || DiaA > diasMes[MesA - 1]){ printf("\n Digite o dia atual: "); scanf("%d", &DiaA); } for(cta = MesA - 2; cta >= 0 ; cta--){ if(MesA == 1){ TotalDiasA = TotalDiasA + (diasMes[0] - DiaA); }else{ TotalDiasA = (TotalDiasA + diasMes[cta]); } } //voltar fev pra 28 diasMes[1] = 28; TotalDias = (AnoA - AnoN); TotalDias = TotalDias * 365; TotalDias = (TotalDias + TotalDiasA + TotalDiasN); for(cta = AnoN + 1; cta < AnoA; cta++){ if(cta % 4 == 0){ TotalDias = (TotalDias + 1); } } printf("\nVocê viveu : "); printf("%d", TotalDias); printf(" dias."); }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...