Como transformar um long em idade

4 respostas
L

[code]package exercicioaluno;//lu

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JOptionPane;

public class Aluno {
private int matricula;
private String nome;
private char sexo;
private Date datanasc;

public int getMatricula() { return matricula; }
public void setMatricula(int matricula) { this.matricula = matricula; }
public String getNome() {return nome; }
public void setNome(String nome) { this.nome = nome; }
public char getSexo() {return sexo; }
public void setSexo(char sexo) { this.sexo = sexo;}
public Date getDatanasc() {return datanasc; }
public void setDatanasc(Date datanasc) { this.datanasc = datanasc;}

public String dateToStr(String formato,Date data){
SimpleDateFormat meuformato= new SimpleDateFormat (formato);
return meuformato.format(data);
}

public Date strToDate(String data){
SimpleDateFormat meuformato = new SimpleDateFormat("dd/MM/yyyy");
try {
Date saida = meuformato.parse(data);//altera formato
return saida;//o parseException serve para uma data invalida o java cria uma exceção
}catch (ParseException ex){//é como else só caira aqui se a condiçãO do try não for verdadeira
System.out.println(ex.getMessage());
return null;
}
}
public void lerDados(){
setNome(JOptionPane.showInputDialog("Nome :"));
setMatricula(Integer.parseInt(JOptionPane.showInputDialog("Matricula: ")));
setSexo(JOptionPane.showInputDialog("M/F").toUpperCase().charAt(0));
setDatanasc(strToDate(JOptionPane.showInputDialog("data de nascimento")));
}

@Override
public String toString(){
return
"Matricula: "+ getMatricula()+
"\nNome"+getNome()+
"\nSexo"+getSexo()+
"\nData de nascimento"+dateToStr("dd/MM/yyyy",getDatanasc());
}

public String mostrarIdade(){

Date atual = Calendar.getInstance().getTime();
long dataAtual = atual.getTime();
long idade;

idade = dataAtual - getDatanasc().getTime();

return "";
}

}
[code]

Oi...preciso calcular a idade do aluno....como faço para colocar em anos, meses e dias??

4 Respostas

mauricionarcizo

Cara, por favor arruma seu tag code para ser possivel visualizar!!!

isaiaspf

Não sei se é isso que você está querendo, mas fica a dica:Calendar calendar = Calendar.getInstance(); calendar.get(Calendar.DAY_OF_MONTH); // Retorna o dia calendar.get(Calendar.MONTH); // Retorna o mês calendar.get(Calendar.YEAR); // Retorna o anoAbraço.

L

eu preciso que o programa retorne a idade da pessoa que digitará sua data de nascimento

isaiaspf
Método para calcular a idade de acordo com a data:
/**
 * Calcula a idade de acordo com a data passada.
 * 
 * @param data
 * @return
 * @author Isaias Pfaffenseller
 */
public static Integer getIdade(Date data) {
	Calendar dataNascimento = Calendar.getInstance();
	dataNascimento.setTime(data);
	Calendar dataAtual = Calendar.getInstance();

	Integer diferencaMes = dataAtual.get(Calendar.MONTH) - dataNascimento.get(Calendar.MONTH);
	Integer diferencaDia = dataAtual.get(Calendar.DAY_OF_MONTH) - dataNascimento.get(Calendar.DAY_OF_MONTH);
	Integer idade = (dataAtual.get(Calendar.YEAR) - dataNascimento.get(Calendar.YEAR));

	if(diferencaMes < 0	|| (diferencaMes == 0 && diferencaDia < 0)) {
		idade--;
	}
	
	return idade;
}
E você pode usar assim:
Integer idade = getIdade(getDatanasc());
Abraço.
Criado 10 de agosto de 2011
Ultima resposta 10 de ago. de 2011
Respostas 4
Participantes 3