Fórum Crie um método para calcular a idade da pessoa. #599210
14/12/2018
0
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
Curtir tópico
+ 0
Responder
Post mais votado
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).
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).
Kelvin A
Responder
Gostei + 1
Mais Posts
15/12/2018
Ricardo Pestana
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;
}
}
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;
}
}
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)