1
resposta

Exercício 05

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Exercicios {
    public static void main(String[] args) {
        LocalDate dataDeVencimentoOrignal = LocalDate.of(2026,05,25);
        LocalDate dataDeVencimentoNova = dataDeVencimentoOrignal.plusMonths(1);

        DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd-MM-yyyy");

        System.out.println("Nova data de vencimento: " + dataDeVencimentoNova.format(formato));
    }
}
1 resposta

Olá, Bernardo. Como vai?

Parabéns por mais uma excelente resolução! O seu código para o Exercício 5 ficou impecável e 100% correto.

A utilização da classe LocalDate é a escolha ideal para esse cenário, pois datas de vencimento de contas, boletos ou contratos não necessitam de informações de horário (horas, minutos e segundos) ou fuso horário, necessitando apenas da precisão do dia, mês e ano.

Você também utilizou perfeitamente o método .plusMonths(1). Vale destacar um conceito fundamental da API java.time que você aplicou aqui mesmo sem perceber: a Imutabilidade.

As classes dessa nova API de datas do Java são imutáveis. Isso significa que quando você faz dataDeVencimentoOriginal.plusMonths(1), o Java não altera o valor dentro da variável original; em vez disso, ele calcula o novo período e gera um objeto inteiramente novo na memória. Você capturou esse novo objeto perfeitamente ao criar a variável dataDeVencimentoNova. Em sistemas concorrentes (onde vários processos rodam ao mesmo tempo), essa imutabilidade evita bugs graves de dados sendo alterados indevidamente.

Para agregar ainda mais valor ao seu código e trazer uma sugestão de boa prática adotada no mercado, separei duas pequenas dicas de padrão de escrita:

1. Correção de Digitação (Typo)

No nome da sua primeira variável, houve um pequeno erro de digitação: dataDeVencimentoOrignal (faltou a letra "i" em Original). Manter a escrita das variáveis correta é uma boa prática importante, pois evita que outros desenvolvedores se confundam ao tentar usar o autocompletar do editor de código.

2. O Padrão de Formatação Oficial Brasileiro

No seu DateTimeFormatter, você utilizou o padrão "dd-MM-yyyy" com hifens:

DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd-MM-yyyy");

Esse formato funciona perfeitamente, mas se o objetivo do seu sistema for exibir a data no padrão oficial de documentos e boletos bancários do Brasil, a convenção do mercado é utilizar as barras (/) em vez dos hifens: "dd/MM/yyyy".

Veja como o seu código fica aplicando esses pequenos refinamentos:

LocalDate dataDeVencimentoOriginal = LocalDate.of(2026, 05, 25);
LocalDate dataDeVencimentoNova = dataDeVencimentoOriginal.plusMonths(1);

// Alterando para o padrão de barras utilizado no Brasil
DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy");

System.out.println("Data de vencimento original: " + dataDeVencimentoOriginal.format(formato));
System.out.println("Nova data de vencimento: " + dataDeVencimentoNova.format(formato));

O seu ritmo de estudos e a qualidade das suas resoluções nesta seção de data e hora estão excelentes. Continue praticando!

Espero que possa ter lhe ajudado!