Crie um método para calcular a idade da pessoa.

Java

14/12/2018

package com.trabalho.poo;

import java.util.Scanner;

public class pessoa {
    
    private static String nome;
    private static String dataNascimento;
    private static float idade;
    
    public static String getNome(){
        return nome;
    }
 
    public void setNome(String nome){
        pessoa.nome = nome;
    }
    
    public static String getDataNascimento(){
        return dataNascimento;
    }
    
    public void setDataNascimento(String dataNasciemnto){
        pessoa.dataNascimento = dataNascimento;
    }
    
    public static float getIdade(){
        return idade;
    }
    
    public void setIdade(float idade){
        pessoa.idade = idade;
    }
    
    public static Scanner entrada;
   
//FALTA FAZER O CALCULO PARA A IDADE
    
    public static void main(String[] args) {
       entrada = new Scanner(System.in);
       
       System.out.println("Digite seu nome: ");
       nome = entrada.nextLine();
       
       System.out.println("Digite sua Data de Nascimento: ");
       dataNascimento = entrada.nextLine();
    }
    public static void main1(String[] args) {
	System.out.println("Seu nome e: " + nome);
	System.out.println("Sua idade e: " + idade);
	
    }
}
Jose Filho

Jose Filho

Curtidas 0

Melhor post

Kelvin A

Kelvin A

14/12/2018

Você poderia usar ao invés de String o DATE, que serve exclusivamente para datas. Você pode encontrar mais sobre neste link : https://www.devmedia.com.br/trabalhando-com-as-classes-date-calendar-e-simpledateformat-em-java/27401

Ou então ao invés de solicitar toda a data ao usuário, poderia perguntar apenas o ano de nascimento e o ano atual. E subtrair (Ano atual - Ano de nascimento).
GOSTEI 1

Mais Respostas

Ricardo Pestana

Ricardo Pestana

14/12/2018

José,

Tenta assim, só separei seu programa em uma classe chamada Principal (com o método main) e outra chamada Pessoa... e tratei a idade como numero inteiro, mas acredito que esse exemplo vai te dar uma idéia de como fazer o calculo....


public class Principal {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Pessoa pessoa = new Pessoa();

System.out.println("Digite seu nome: ");
pessoa.setNome(entrada.nextLine());

System.out.println("Digite sua Data de Nascimento: ");
String nascimento = entrada.nextLine();
try {
pessoa.setDataNascimento(sdf.parse(nascimento));
} catch (ParseException e) {
System.err.println("Data informada no formato erroado!!!");

}

System.out.println(pessoa.getNome());
System.out.println(pessoa.getDataNascimento());
System.out.println(pessoa.getIdade());
}

}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
public class Pessoa {

private String nome;
private Date dataNascimento;
private Integer idade;
private ZoneId ZONEID = ZoneId.of("America/Sao_Paulo");

public Pessoa() {
super();
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public Date getDataNascimento() {
return dataNascimento;
}

public void setDataNascimento(Date dataNascimento) {
this.dataNascimento = dataNascimento;
}

public Integer getIdade() {
Integer idade = 0;
LocalDate dataHoje = LocalDate.now();
if (this.dataNascimento != null) {
LocalDate dtNacimento = ZonedDateTime.ofInstant(dataNascimento.toInstant(), ZONEID).toLocalDate();
Period dif = dtNacimento.until(dataHoje);
idade = dif.getYears();
}
return idade;

}


}
GOSTEI 1
POSTAR