Java LocalDate com o Método withYear

JavaBeginner
Pratique Agora

Introdução

O método withYear() da classe LocalDate do Java é usado para obter uma nova data com o ano especificado. Ele retorna uma cópia da instância LocalDate atual com o ano alterado para o valor especificado. Este laboratório irá guiá-lo através do uso do método withYear() de forma passo a passo.

Criar um arquivo Java

Abra o terminal e crie um arquivo Java com o comando touch.

touch ~/project/WithYearExample.java

Isso cria um arquivo Java chamado WithYearExample.java no diretório ~/project/.

Importar os pacotes necessários

Um pacote (package) é um namespace que organiza um conjunto de classes e interfaces relacionadas. Para usar a classe LocalDate, precisamos importar o pacote java.time.LocalDate. Adicione o seguinte código ao arquivo WithYearExample.java.

import java.time.LocalDate;

Criar uma instância de LocalDate

Nesta etapa, criaremos uma instância da classe LocalDate usando o método of(). O método of() recebe três argumentos: o ano, o mês e o dia. Adicione o seguinte código abaixo da instrução de importação.

LocalDate date = LocalDate.of(2022, 1, 15);
System.out.println("Initial Date: " + date);

Aqui, definimos a data como 15 de janeiro de 2022.

Alterar o ano usando withYear()

Nesta etapa, usaremos o método withYear() para alterar o ano da instância LocalDate. Adicione o seguinte código abaixo da etapa 3.

LocalDate newDate = date.withYear(2030);  // Set year as 2030
System.out.println("New Date: " + newDate);

Aqui, criamos uma nova variável newDate e definimos o ano para 2030 usando o método withYear().

Lidar com dia-do-mês inválido

Se a instância LocalDate atual tiver um dia-do-mês que é inválido para o novo ano, então o método withYear() ajusta o valor do dia-do-mês para o último dia válido do mês. Adicione o seguinte código abaixo da etapa 4.

LocalDate dateWithInvalidDayOfMonth = LocalDate.of(2021, 2, 31);
LocalDate newDateWithAdjustedDayOfMonth = dateWithInvalidDayOfMonth.withYear(2022);
System.out.println("Old Date: " + dateWithInvalidDayOfMonth + "\nNew Date: " + newDateWithAdjustedDayOfMonth);

Aqui, definimos uma data com um dia-do-mês inválido, 31 de fevereiro de 2021, que não existe. Em seguida, aplicamos o método withYear() para alterar o ano para 2022. Como 2022 não é um ano bissexto, e fevereiro tem apenas 28 dias, o dia-do-mês é ajustado para 28, que é o último dia válido de fevereiro.

Compilar e executar o programa

Para compilar e executar o programa, navegue até o diretório do projeto e execute o seguinte comando.

javac WithYearExample.java && java WithYearExample

A saída do programa após executar o comando acima deve ser:

Initial Date: 2022-01-15
New Date: 2030-01-15
Old Date: 2021-02-31
New Date: 2022-02-28

Resumo

Neste laboratório, aprendemos como usar o método withYear() da classe LocalDate em Java para obter uma data com o ano especificado. Também aprendemos como lidar com dias-do-mês inválidos ao usar o método withYear(). Seguindo estes passos, você agora deve ser capaz de usar o método withYear() para trabalhar efetivamente com instâncias LocalDate em seus programas Java.