Boa tarde Galera tudo bem?
Sou novato em Java, e estou aprendendo esse mundo de programação que é novo para mim. É o seguinte, eu estou fazendo um exercicio no qual eu preciso mostrar na tela uma mensagem no qual, pelo ano de nascimento dessa pessoa se é adepta ou não a votar. Porém, eu já pesquisei na internet, tentei resolver por conta própria, mas, não achei sobre esse assunto e não estou conseguindo resolvereste procedimento. Vocês poderia me ajudar nesta questão?
Estarei deixando o codigo para analisarem melhor.
public class AutorizaVotar {
public static void main(String[] args) {
Scanner entrance = new Scanner(in);
System.out.print("Input you BirthYear:");
int birthYear = entrance.nextInt();
LocalDate today = LocalDate.now();
LocalDate birthDate = LocalDate.of(birthYear);
int years = Period.between(today, birthDate).getYears();
System.out.println(years);
/*if (years >= 18){
System.out.println("You are adept to vote in your president!!!");
}
else{
System.out.println("You are not adept to vote in your president!!!");
}
O método of da classe LocalDate espera receber o ano, mês e dia.
Você só passou o ano.
E no método between da classe Period, você deve pôr a data de nascimento antes da data atual, caso contrário você terá uma idade negativa.
import java.io.PrintStream;
import java.time.LocalDate;
import java.time.Period;
import java.util.Scanner;
public class AutorizaVotar {
private static final Scanner in = new Scanner(System.in);
private static PrintStream out = System.out;
public static void main(String[] args) {
out.print("Input you BirthYear:");
int birthYear = in.nextInt();
LocalDate today = LocalDate.now();
LocalDate birthDate = LocalDate.of(birthYear, 1, 1);
int years = Period.between(birthDate, today).getYears();
out.println(years);
if (years >= 18) {
out.println("You are adept to vote in your president!!!");
} else {
out.println("You are not adept to vote in your president!!!");
}
}
}