Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

[Dúvida] Não seria o correto utilizar minus.Moths para retroceder o mês já que esta pedido um adiantamento, no caso da resolução voces utilizaram plus.Moths, que no caso adicionou um mes amais

package nova.data.vencimento;

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

public class Main {
    public static void main(String[] args) {
        LocalDate dataVencimento = LocalDate.of(2025, 6, 17);

        Scanner ler = new Scanner(System.in);
        System.out.print("Digite quantos meses quer adiantar o pagamento: ");
        int meses = ler.nextInt();

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

        LocalDate novaData = dataVencimento.minusMonths(meses);

        System.out.println("Data de vecimento anterior: " + dataVencimento.format(formatter) +
                "\nFoi soliticado: " + meses + " meses de para adiantamento \n"
                + "Nova Data de vencimento é "+ novaData.format(formatter));

    }
}
1 resposta

Oi, Igor! Como vai?

Você está enfrentando uma confusão comum sobre o uso de plusMonths e minusMonths.

  • plusMonths(n) → avança a data em n meses.
  • minusMonths(n) → retrocede a data em n meses.

No seu caso, se o usuário digita "adiantar pagamento", isso significa trazer a data para antes (antecipar). Ou seja, faz sentido usar minusMonths, como você já implementou.

Veja este exemplo:

import java.time.LocalDate;

public class Teste {
    public static void main(String[] args) {
        LocalDate data = LocalDate.of(2025, 6, 17);

        // Adiantando 2 meses (pagamento antes do prazo)
        LocalDate adiantada = data.minusMonths(2);

        // Atrasando 2 meses (pagamento depois do prazo)
        LocalDate atrasada = data.plusMonths(2);

        System.out.println("Data original: " + data);
        System.out.println("Adiantada: " + adiantada);
        System.out.println("Atrasada: " + atrasada);
    }
}
Saída:
Data original: 2025-06-17
Adiantada: 2025-04-17
Atrasada: 2025-08-17

✅ Portanto:

  • Se a ideia é antecipar, use minusMonths
  • Se a ideia for postergar, use plusMonths.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado