Boa noite pessoal, preciso da ajuda de vocês.
Preciso imprimir na tela a data de nascimento de uma pessoa e também calcular a idade.
Está retornando as informações erradas. Na parte da data de nascimento, ele não retorna no formato correto e quando calcula a idade, não consigo pegar somente o ano da data de nascimento informada:
package Pooexercicio01;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
*
* @author migtr
*/
public class Pessoa {
private String nome;
private double altura;
private Date dataNasc;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
public Date getDataNasc() {
return dataNasc;
}
public void setDataNasc(Date dataNasc) {
this.dataNasc = dataNasc;
}
public int calcularIdade() {
Calendar c = Calendar.getInstance();
int anoAtual = Calendar.YEAR;
SimpleDateFormat formatador = new SimpleDateFormat("yyyy");
int anoNasc = Integer.parseInt(formatador.format(this.getDataNasc()));
return anoAtual - anoNasc;
}
public void imprimirDados() {
System.out.println("NOME = " + this.getNome());
System.out.println("ALTURA = " + this.getAltura());
System.out.println("DATA DE NASCIMENTO = " + this.getDataNasc());
System.out.println("IDADE = " + this.calcularIdade());
}
e aqui segue o método main:
package Pooexercicio01;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.util.Date;
/**
*
* @author miguel
*
* Cria uma classe para representar uma Pessoa com os atributos privados de
* nome, data de nascimento e altura. Crie os métodos públicos necessários para
* getters e setters e também um método para imprimir todos dados de uma pessoa.
* Crie um método para calcular a idade da pessoa.
*/
public class App {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
String nome, dataString;
double altura;
Date dataNasc;
System.out.print("Informe o nome: ");
nome = sc.nextLine();
System.out.print("Informe a altura: ");
altura = Double.parseDouble(sc.nextLine());
System.out.print("Informe a data de nascimento(dd/mm/aaaa): ");
dataString = sc.nextLine();
dataNasc = formatador.parse(dataString);
Pessoa p = new Pessoa();
p.setNome(nome);
p.setAltura(altura);
p.setDataNasc(dataNasc);
System.out.println("");
System.out.println("IDADE = " + p.calcularIdade());
System.out.println("");
p.imprimirDados();