Calcular Idade pelo ano

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.

import java.time.LocalDate;
import java.time.Period;
import java.util.Scanner;
import static java.lang.System.in;

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!!!");
    }

*/
}
}
Obrigado.

A passagem de parametro para o método of de LocalDate esta errado:

of(int year, int month, int dayOfMonth)
of(int year, Month month, int dayOfMonth)

Uma possível solução usando Calendar:

private int calculaIdade(Date data) {
    Calendar dataNascimento = Calendar.getInstance();
    dataNascimento.setTime(data); //Data de nascimento
    Calendar dataAtual = Calendar.getInstance();
    dataAtual.setTime(new Date()); //Data atual
        
    return dataAtual.getWeekYear() - dataNascimento.getWeekYear(); //Retorna a idade
}

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!!!");
        }
    }
}

Obrigado Galera pela ajuda, agora entendi como funciona.
Valeu mesmo!!!