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.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!