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.



