Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

IAmLegend

Calcular Idade em Java

Mensagens Recomendadas

IAmLegend

Boa noite, gostaria de saber como posso calcular a idade a partir da data nascimento ,se já fez anos este ano ou não

/*  M  E  T  O  D  O  S       A      I  M  P  L  E  M  E  N  T  A  R  */
    /**
     * Metodo que recebe uma String com a data de nascimento e devolve a idade
     *
     * A data de nascimento tem OBRIGATORIAMENTE O SEGUINTE
     * FORMATO: DD/MM/AAAA
     *
     * @param d
  * @param dataNascimento
     * @return retorna a idade
     */
    public static int calcularIdade(String dataNascimento) {
     
      return 0;
   }
    }

Tenho esse método para calcular a idade e também este para ver se a data é válida:

public static boolean isDataValida(String data) {
    if (data == null || data.equals("")) {
            return false;
        }
        java.util.Date date = null;
        try {
            DateFormat f = new SimpleDateFormat("dd/MM/yyyy");
            date = (java.util.Date) f.parse(data);
        } catch (ParseException e) {
            return false;
  }
        return true;
    }

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

para saber se ja fez anos no ano corrente basta saber se o mes actual é superior, caso contrário, se for igual o dia terá de ser igual ou superior.

este tipo de informação podes retirar facilmente do objecto Date que usas na função que já implementaste


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Date now = new Date();

DateFormat f = new SimpleDateFormat("dd/MM/yyyy");
Date birthday = (java.util.Date) f.parse(data); // variavel data ja a tens

int age = now.getYear() - birthday.getYear() - 1;
if (now.getMonth() > birthday.getMonth())
  age++;
else if (now.getMonth() == birthday.getMonth() && now.getDay() >= birthday.getDay())
  age++;

...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
IAmLegend

a unica coisa que ta mal nesse metodo a a variavel data como nao posso ir buscar ao outro metodo, mas posso instancia la aqui

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
IAmLegend

Se eu iniciar a variável data:

String data = null;

Vai me dar erro no Date birthday = (java.util.Date) f.parse(data);

Podes ajudar ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Se eu iniciar a variável data:

String data = null;

Não estas a inicializar a variável ....

para isso necessitas de :

String data = new String("01/01/2010");


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
IAmLegend

Continua a dar erro, pede para adicionar o Parse Exception e não posso adicionar pois o outro método que necessito do calcular idade irá dar-me erro

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

????????????

copy-paste !!!!!!!

        try {
            DateFormat f = new SimpleDateFormat("dd/MM/yyyy");
            date = (java.util.Date) f.parse(data);
        } catch (ParseException e) {
            return false;


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.