Calcular a idade através de uma data informada - JSP

8 respostas
alysoncredip

bom dia pessoal, estou programando em JSP, e o seguinte preciso que seja calculado a idade depois que uma data for informada.

fiz um campo text normal para que seja informada a data, com o campo já formatada para receber no padrão 00/00/0000.
preciso fazer esse calculo.se alguem ja tiver um exemplo pronto já ajudaria muito. quem puder me ajudar eu agradeço desde já.

a data sera digitada pelo usuario, eu preciso salvar no bd o resultado que e a idade.

8 Respostas

U

essa data esta salva no banco de dados?

alysoncredip

Não o usuario ira digitar a data, dai eu preciso que seja feito o calculo, para salvar esse resultado que e a idade no BD.

U

aqui no fórum já teve dúvidas desse mesmo género.
de uma olhada nesse link: http://www.guj.com.br/java/21062-como-calcular-a-idade

te perguntei se já estava salvo, pq tem um select que já faz essa comparação da data atual com uma de nascimento.

select CURRENT DATE - “outra data” from “tabela” where “expressão de restrição”

luxu

pesquese sobre JODATIME, tem td o q ker e muito mais…

R
temos esse algoritmo que é bastante eficiente..


import java.util.Calendar;  
import java.util.Date;  
  
/** 
*@Author: Renata Torres
*/  
  
public class Data {  
   public Data(Date data){  
      System.out.println(calcIdade(data));  
   }  
     
   public int calcIdade(Date dataNasc){  
      Date hoje = new Date();  
      Calendar cal = Calendar.getInstance();  
        
      cal.setTime(hoje);  
      int day1 = cal.get(Calendar.DAY_OF_YEAR);  
      int ano1 = cal.get(Calendar.YEAR);  
        
      cal.setTime(dataNasc);  
      int day2 = cal.get(Calendar.DAY_OF_YEAR);  
      int ano2 = cal.get(Calendar.YEAR);  
        
      int nAno = ano1 - ano2;  
        
      if(day1 < day2)  
         nAno--; //Ainda não completou aniversario esse ano.  
           
      return nAno;  
   }  
     
   public static void main(String[] args){  
      Calendar c = Calendar.getInstance();  
      c.set(1988, 2, 23); //Dia começa de 1 mesmo é normal.já o mês começa de 0 não de 1, ou seja esta data se refere ao dia 23 de março de 1988. 
      new Data(c.getTime());  
   }  
}
U

se vc não achar alguma solução, tenta salva a data de nascimento no BD, ai quando vc for mostrar na tela a idade da pessoa
usa o select que te passei :smiley:

Abraços

luxu

melhor seria a data msm e fazer o calculo qdo mostrar a idade por causa das atualizações com o passar dos ano.

alysoncredip

Pessoal obrigado a todos. Deu certo.

vlw…

Criado 10 de janeiro de 2012
Ultima resposta 10 de jan. de 2012
Respostas 8
Participantes 4