Essa foi a maneira que eu encontrei para resolver o desafio do Period.
package br.com.alura;
import java.time.*;
import java.time.format.DateTimeFormatter;
public class Exemplo {
public static void main(String[] args) {
//Pega a data atual (no meu caso 14/04/2026)
LocalDate dataCompra = LocalDate.now();
//Criando uma variável com a data de 30/10/2026
LocalDate dataPagamento = LocalDate.parse("2026-10-30");
//Variável Period para pegar a distância de uma data para outra
Period periodo = Period.between(dataCompra, dataPagamento);
//Um laço contando quantos meses faltam até a dataPagamento
for (int i = 0; i < periodo.getMonths(); i++)
//Adicionando os dias que não foram contados na variável periodo, usando o .getMonth().lenght, que retorna um long, para pegar quantos dias tem o mês. É necessário usar o .isLeapYear() para saber se o ano em questão é bissexto ou não.
periodo = periodo.plusDays(dataCompra.getMonth().length(dataCompra.isLeapYear()));
//Incrementando o mês de dataCompra para a variável acima receba o total de dias do próximo mês
dataCompra = dataCompra.plusMonths(1);
}
//Saída para o teminal mostrando corretamente quantos dias faltam para a dataPagamento (No meu caso a resposta é 199)
System.out.println("Diferença em dias: " + periodo.getDays());
}
}