はじめに
Java のLocalDateクラスのwithYear()メソッドは、指定された年の新しい日付を取得するために使用されます。このメソッドは、現在のLocalDateインスタンスのコピーを返し、その年を指定された値に変更します。この実験では、withYear()メソッドの使用方法を段階的に案内します。
Java ファイルを作成する
ターミナルを開き、touchコマンドを使用して Java ファイルを作成します。
touch ~/project/WithYearExample.java
これにより、~/project/ディレクトリにWithYearExample.javaという名前の Java ファイルが作成されます。
必要なパッケージをインポートする
パッケージは、関連するクラスとインターフェイスのセットを整理する名前空間です。LocalDateクラスを使用するには、java.time.LocalDateパッケージをインポートする必要があります。WithYearExample.javaファイルに次のコードを追加します。
import java.time.LocalDate;
LocalDate のインスタンスを作成する
このステップでは、of()メソッドを使用してLocalDateクラスのインスタンスを作成します。of()メソッドは 3 つの引数を取ります。年、月、日です。インポート文の下に次のコードを追加します。
LocalDate date = LocalDate.of(2022, 1, 15);
System.out.println("Initial Date: " + date);
ここでは、日付を 2022 年 1 月 15 日に設定しています。
withYear() を使って年を変更する
このステップでは、withYear()メソッドを使用してLocalDateインスタンスの年を変更します。ステップ 3 の下に次のコードを追加します。
LocalDate newDate = date.withYear(2030); // 年を 2030 年に設定する
System.out.println("New Date: " + newDate);
ここでは、新しい変数newDateを作成し、withYear()メソッドを使用して年を 2030 年に設定しています。
無効な月の日付を処理する
現在のLocalDateインスタンスの日付が新しい年に無効な場合、withYear()メソッドは日付をその月の最後の有効な日に調整します。ステップ 4 の下に次のコードを追加します。
LocalDate dateWithInvalidDayOfMonth = LocalDate.of(2021, 2, 31);
LocalDate newDateWithAdjustedDayOfMonth = dateWithInvalidDayOfMonth.withYear(2022);
System.out.println("Old Date: " + dateWithInvalidDayOfMonth + "\nNew Date: " + newDateWithAdjustedDayOfMonth);
ここでは、存在しない 2021 年 2 月 31 日のような無効な日付を設定します。その後、withYear()メソッドを適用して年を 2022 年に変更します。2022 年はうるう年ではなく、2 月は 28 日までしかないため、日付は 2 月の最後の有効な日である 28 日に調整されます。
プログラムをコンパイルして実行する
プログラムをコンパイルして実行するには、プロジェクトディレクトリに移動して、次のコマンドを実行します。
javac WithYearExample.java && java WithYearExample
上記のコマンドを実行した後のプログラムの出力は以下のようになるはずです。
Initial Date: 2022-01-15
New Date: 2030-01-15
Old Date: 2021-02-31
New Date: 2022-02-28
まとめ
この実験では、Java のLocalDateクラスのwithYear()メソッドを使って指定された年の日付を取得する方法を学びました。また、withYear()メソッドを使用する際の無効な日付を扱う方法も学びました。これらの手順に従えば、Java プログラムでwithYear()メソッドを使ってLocalDateインスタンスを効果的に操作できるようになったはずです。



