Já fiz algo assim em C, utilizando struct para armazenar a data, o complicado é que fosse terá que verificar meses de 30 e 31 dias e no mês de fevereiro se o ano é bissexto.
S
sowyer
Bom … vamos lá … beeeeeeeeem do começo … como vc faz pra calcular quantos anos vc tem hj ?
V
viny_scholl
sowyer:
Bom ... vamos lá ... beeeeeeeeem do começo .. como vc faz pra calcular quantos anos vc tem hj ?
Assim, não pede a restrição de ano Bissexto. Eu não sei é fazer a diferença, no caso de a pessoa ter nascido em Outubro e hoje ser novembro e calcular essa diferença. Tipo, saber se ja passamos pelo mês para ele ser contabilizado como dias.
é para ser resolvido em pseudocodigo simples
algoritmovard,m,a:intd_a,m_a,a_a:int//diaatual,mesatual,anoatualdia,mes,ano:intinicioescreval("Dia de Nascimento:");leia(d);escreval("Mes de Nascimento:");leia(m);escreval("Ano de Nascimento:");leia(a);escreval("Dia Atual:");leia(dia);escreval("Mes Atual:");leia(mes);escreval("Ano Atual:");leia(ano);ano=(ano-a);ano=ano*365...escreval("A pessoa possui: "+dias_vida+" Dias de vida");fimalgoritmo
Esse exercício, pra mim, é mais difícil do que aparenta ser.
M
magostta
Se for algo só pra treinar logica da pra arredontar mês = 30 e ano=365
e ai é so subtrair a data de hj menos a sua data de nascimento, e multiplicar mes*30 ano * 365 + dia
Se quiser trabalhar com valores reais( meses <> 30 e anos <> 365 ) vai ter que usar alguma classe do java
[color=red]Considerando todas variáveis inteiras[/color]
Isso converte datas em dias, falta com ele converter a data atual e a data de nascimeto
daí:
diasDeVida = diasAteHoje - diasAteNascimento
D
DavidUser
De modo mais algorítmico:
numeroDeDiasParaOAno = ano * 365
if mes < 8
then
meses31 = (mes + 1) / 2
else
meses31 = 1 + mes / 2
meses30 = mes - meses31;
numeroDeDiasParaOMes = meses31 * 31 + meses30 * 30
if (mes > 2)
then
numeroDeDiasParaOMes = numeroDeDiasParaOMes - 2;
anoFim = ano + 1
else
anoFim = ano
numeroDeDiasParaODia = dia
fatorCorrecaoParaAnosBissextos = (anoFim / 4) - (anoFim / 100) + (anoFim / 400)
numeroTotalDeDias = numeroDeDiasParaOAno + numeroDeDiasParaOMes + numeroDeDiasParaODia + fatorCorrecaoParaAnosBissextos
[color=red]Considerando todas variáveis inteiras[/color]
Isso converte datas em dias, falta com ele converter a data atual e a data de nascimeto
daí:
diasDeVida = diasAteHoje - diasAteNascimento
D
DavidUser
Do modo de mais simples e interativo, mas também mais ineficiente: