Embora o uso do ano esteja fora do escopo do desafio, achei interessante utilizá-lo.
public class Main {
public static void main(String[] args) {
LocalDate dataCompra = LocalDate.now();
LocalDate dataPrimeiraParcela = LocalDate.of(2023, 5, 15);
LocalDate dataSegundaParcela = dataPrimeiraParcela.plusDays(30);
if (dataPrimeiraParcela.isBefore(LocalDate.now())) {
System.out.println("Anterior do dia do vencimento");
} else {
System.out.println("Superior do dia do vencimento");
}
System.out.println("Data da compra: " + dataCompra);
System.out.println("Data primeira parcela: " + dataPrimeiraParcela);
System.out.println("Data segunda parcela: " + dataSegundaParcela);
DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy");
System.out.println("Data da compra: " + dataCompra.format(formato));
ZonedDateTime dataConclusaoCompra = ZonedDateTime.now();
System.out.println("Data de conclusão da compra: " + dataConclusaoCompra);
ZonedDateTime dataCompraNy = dataConclusaoCompra.withZoneSameInstant(ZoneId.of("America/New_York"));
System.out.println("Data de conclusão da compra NY: " + dataCompraNy);
LocalTime inicio = LocalTime.of(9,0);
LocalTime fim = LocalTime.of(17,30);
Duration duracao = Duration.between(inicio, fim);
System.out.println("Tempo de expediente: " + duracao.toHours() +
" horas e " + duracao.toMinutesPart() + " minutos");
LocalDate dataPagamento = LocalDate.parse("2025-10-30");
Period periodo = Period.between(dataPrimeiraParcela, dataPagamento);
int dias = periodo.getDays();
int meses = periodo.getMonths();
int anos = periodo.getYears();
System.out.println("Diferença em dias e meses e anos: " + dias + " dias, " + meses + ", meses e " + anos + " anos" );
}
}
Alterei a variável período colocando a data da primeira parcela para que ilustrasse a contagem de dias, meses e anos também.