Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução do Desafio

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

public class Main {
    public static void main(String[] args) {

        LocalDate dataVencimentoOriginal = LocalDate.of(2025,03,20);
        int numeroMeses = 1;
        LocalDate dataVencimentoAjustada = dataVencimentoOriginal.plusMonths(numeroMeses);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

        System.out.println("Nova data de vencimento: " + dataVencimentoAjustada.format(formatter));

    }
}
1 resposta

Olá, Pablo! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o LocalDate para manipulação de datas em Java, utilizou muito bem o método plusMonths() para ajustar o vencimento e ainda compreendeu a importância do DateTimeFormatter para exibir a data em um formato amigável.

Uma dica interessante para o futuro é permitir que o número de meses seja informado pelo usuário, tornando o programa mais flexível. Assim:

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

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        LocalDate dataVencimentoOriginal = LocalDate.of(2025, 3, 20);
        System.out.print("Digite quantos meses deseja adicionar: ");
        int numeroMeses = scanner.nextInt();

        LocalDate dataVencimentoAjustada = dataVencimentoOriginal.plusMonths(numeroMeses);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

        System.out.println("Nova data de vencimento: " + dataVencimentoAjustada.format(formatter));
        scanner.close();
    }
}

Isso faz com que o usuário possa personalizar o cálculo de acordo com sua necessidade.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Tratar entradas inválidas: garantir que o usuário digite apenas números positivos.
  • Usar Period: para manipular intervalos de tempo mais complexos (anos, meses e dias).
  • Internacionalizar formatos: adaptar o DateTimeFormatter para diferentes regiões e idiomas.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: o que você acha mais interessante evoluir neste código, permitir que o usuário informe tanto meses quanto dias para ajustar a data ou manter apenas a lógica de meses para simplificar?

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!