Como saber a Idade

11 respostas
B

Olaaaa pessoassss, to com uma duvida e resolvi compartilhar com vcs veja minha situacao
tenho 3 campos jtextfield, jt_a ,jt_b e jt_c.

no jt_a eu insiro a data atual e no jt_b insiro a data de aniversario do cidadao, e gostaria que aparecer a idade dele no jt_c como faco isso alguem tem alguma ideia? qqr ajuda e muito bem vinda e muito obrigada pela atencao!

11 Respostas

Flavio_Luiz

Se você quer aparece dinamicamente você terá que criar um Listener para os campos…

criador

Além de criar o Listener, para facilitar a sua vida, converta estes valores digitados nos campos TextField’s para data, assim fica mais fácil para você comparar estas datas.

I

Usa o calendar para trabalhar com datas. Se preferir tem uma gambi de transformar em string, pegar a substring do ano, transformar em inteiro e depois fazer a subtração.

Espero ter ajudado.

B

Entao eu uso o JCalendar mas nao sei como fazer a comparacao da data e ter o resultado alguem poderia me ajudar? obrigado pela atencao de todos vcs!

B

Tendo a data capturada, como faco o calculo para dar a idade? minha duvida e nesse algoritmo, se alguem tiver um exemplo nem que seja statico mesmo ja ajuda!

renanreismartins

de uma olhadinha na joda-time, a documentação é simples… nada de fazer calculos com Calendar ou Date…

abrassss

criador

Tenho um exemplo aqui, porém já bem ultrapassado.

Mas dá para você tirar uma base.

SimpleDateFormat simple_date = new SimpleDateFormat("dd/MM/yyyy");
		
		SimpleDateFormat simple_date1 = new SimpleDateFormat("dd/MM/yyyy");
		
		Date
		date = null,
		date1 = null;
		
		try
		{
			date = simple_date.parse("10/05/2009");
			date1 = simple_date1.parse("11/05/2012");
			System.out.println(date1.getYear() - date.getYear());
		}
		catch (ParseException e)
		{
			e.printStackTrace();
		}

Abraço!

B

criador mas e vindo de um Date invez de String

Date dataC = jdc_dataC.getDate();
        Date dataN= jdc_dataN.getDate();

como faria esse parse?

B

e outra coisa n pode ser getYear pq pensa cumigo se eu colocar 11/11/1959 como data de nascimento e o calculo base for a data de hj 24/09/2009
o resultado sera 50 anos mas ele n tem 50 anos ainda pq n fez ainda entende? por isso o calculo tem q pega o mes tambem se nao n adianta

renamed

biluquinha:
e outra coisa n pode ser getYear pq pensa cumigo se eu colocar 11/11/1959 como data de nascimento e o calculo base for a data de hj 24/09/2009
o resultado sera 50 anos mas ele n tem 50 anos ainda pq n fez ainda entende? por isso o calculo tem q pega o mes tambem se nao n adianta

Só fazer um if, se a data for menor q o dia e o mes do aniversario dele vc diminui um da idade

criador

Eu tinha postado o código errado.

Lá vai o método.

public static int calculaIdade(String data_aniv) {
		DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
	        Date dataNascInput = null;
	        try {
	            dataNascInput= sdf.parse(data_aniv);
	        } catch (Exception e) {}
	        
	        Calendar dateOfBirth = new GregorianCalendar();
	        dateOfBirth.setTime(dataNascInput);
	        
	        // Cria um objeto calendar com a data atual
	        Calendar today = Calendar.getInstance();
	        
	       // Obtém a idade baseado no ano
	        int age = today.get(Calendar.YEAR) - dateOfBirth.get(Calendar.YEAR);
	        
	        dateOfBirth.add(Calendar.YEAR, age);
	        
	        if (today.before(dateOfBirth)) {
	            age--;
	        }
	        
	        return age;
	}

Exemplo: System.out.println(calculaIdade(“25/09/2000”));
Idade: 8 anos.

Criado 24 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 11
Participantes 6