1
resposta

Resolução do desafio "Calculando a data de entrega"

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);

        DateTimeFormatter formatoData = DateTimeFormatter.ofPattern("dd/MM/yyyy");

        System.out.println("Digite a data de início (dd/MM/yyyy): ");
        LocalDate dataInicio = LocalDate.parse(scanner.nextLine(), formatoData);

        System.out.println("Digite a quantidade de dias que tem até a data de prazo: ");
        LocalDate dataPrazo = dataInicio.plusDays(scanner.nextInt());

        System.out.println("Data de entrega: " + dataPrazo.format(formatoData));
    }
}
1 resposta

Oi, Lucas, como vai?

O código funciona corretamente e resolve o desafio de forma direta. Uma observação pontual: misturar scanner.nextLine() com scanner.nextInt() no mesmo Scanner pode causar comportamentos inesperados, porque o nextInt() não consome a quebra de linha do buffer, o que pode fazer com que uma leitura subsequente de nextLine() retorne uma string vazia.

Neste código específico o nextInt() está na última leitura, então não chega a causar problema. Mas como boa prática, vale manter consistência usando apenas nextLine() com a devida conversão.

Parabéns pelo exercício, ótimo ver você praticando manipulação de datas em Java.

Continue compartilhando suas soluções por aqui, o fórum está à disposição.

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