Programa que calcula idade JCreator

2 respostas
P

Sou iniciante em java e to com um problema pra desenvolver um programa que calcula a idade de uma pessoa sem usar o Date ou Calendar
tem que ter as variáveis para o dia, mês e ano de nascimento e dia, mês e ano da data atual.
não adianta só pegar o ano atual e subtrai pelo ano de nascimento, tem que contar com o mês e os dias.

Ex:
Data de nascimento: 10/03/1980
Data atual: 09/03/2012
Idade desta pessoa: 31 anos

ja tentei de várias maneiras e até agora nd
import java.util.Scanner;
  public class exercicio5 {
   public static void main (String args[]){
    Scanner e= new Scanner (System.in);
   	float dia,mes,ano,diaat,mesat,anoat,idade; 
		System.out.print ("Digite o dia de nascimento:  ");  
		dia = e.nextFloat();
		System.out.print ("Digite o mês de nascimento:  ");
		mes = e.nextFloat();
		System.out.print ("Digite o ano de nascimento: ");
		ano = e.nextFloat();
		System.out.print ("Digite o dia atual: ");
		diaat = e.nextFloat();
		System.out.print ("Digite o mês atual: ");
		mesat = e.nextFloat();
		System.out.print ("Digite o ano atual: ");
		anoat = e.nextFloat();
		idade = (anoat-ano)+(diaat-dia)%(mesat-mes);
		System.out.println ("Idade desta pessoa: "+idade);
		   
   }
 }

2 Respostas

lucas_guj

Questão de lógica pura, Primeiro modifique as variaveis para int e depois tudo de nextFloat para nextInt.
Segundo, remova essas duas linhas:

idade = (anoat-ano)+(diaat-dia)%(mesat-mes);  
System.out.println ("Idade desta pessoa: "+idade);

E acrescente essas:

idade = anot - ano; // idade temporaria para depois verificarmos se é isso mesmo

if( mesat >= mes && diaat >= dia ) {
    return;
}
else if( (mesat >= mes && diaat <= dia) || ( mesat <= mes ) ) {
    idade -= 1;
}

System.out.println ("Idade desta pessoa: "+idade);

Agora vê se funciona, estou sem IDE aqui, então fiz aqui na janela de resposta do forum mesmo. Abraços

P

vlww agora deu certo aki eu tinha tentado faze +/- assim tbm mais n tinha conseguido :stuck_out_tongue:
sou pessimo com esse if e else

Criado 13 de abril de 2012
Ultima resposta 13 de abr. de 2012
Respostas 2
Participantes 2