はじめに
この実験では、Java の LocalDate クラスのcompareTo()メソッドの使い方を学びます。このメソッドは 2 つの異なる日付を比較し、整数値を返します。
LocalDate パッケージをインポートする
LocalDate クラスをインポートするには、ファイルの先頭に次のインポート文を追加します。
import java.time.LocalDate;
compareTo() を使って日付を比較する
このステップでは、compareTo() メソッドを使って 2 つの異なる日付を比較し、比較結果に基づいて出力を表示します。main() メソッドに次のコードを追加します。
// 日付を取得する
LocalDate date1 = LocalDate.of(2021, 12, 31);
// 日付を表示する
System.out.println("Date 1 is : "+date1);
// 別の日付を取得する
LocalDate date2 = LocalDate.now();
// 日付を表示する
System.out.println("Date 2 is : "+date2);
// compareTo() を使って 2 つの日付を比較する
int result = date1.compareTo(date2);
// 日付 1 が日付 2 の前、後、または等しいかどうかを表示する
if(result<0){
System.out.println("Date 1 is before Date 2");
}
else if(result>0){
System.out.println("Date 1 is after Date 2");
}
else{
System.out.println("Both Dates are same");
}
コードを実行する
ファイルを保存し、ターミナルで次のコマンドを実行します。
javac DateComparator.java && java DateComparator
日付を変更して比較する
このステップでは、比較に使用する日付を変更して出力を見てみます。コード内の次の行を置き換えます。
LocalDate date1 = LocalDate.of(2021, 12, 31);
他の日付に置き換えてから、コードを再実行します。
同じ日付を比較する
このステップでは、比較に使用する日付を同じに変更します。コード内の次の行を置き換えます。
LocalDate date2 = LocalDate.now();
date1 と同じ日付に置き換えてから、コードを再実行します。
今日の日付と未来の日付を比較する
このステップでは、今日の日付と未来の日付を比較します。コード内の次の行を置き換えます。
LocalDate date1 = LocalDate.of(2021, 12, 31);
未来の任意の日付に置き換えてから、コードを再実行します。
今日の日付と過去の日付を比較する
このステップでは、今日の日付と過去の日付を比較します。コード内の次の行を置き換えます。
LocalDate date1 = LocalDate.of(2021, 12, 31);
過去の任意の日付に置き換えてから、コードを再実行します。
異なる ChronoLocalDate オブジェクトを使用する
このステップでは、LocalDateではなくChronoLocalDateから拡張された異なるオブジェクトを使用して、2 つの異なる日付を比較します。まず、MyDateという新しいクラスを作成し、次のコードを追加します。
import java.time.chrono.ChronoLocalDate;
public class MyDate implements ChronoLocalDate {
// ChronoLocalDate インターフェイスの実装詳細を追加する
//...
}
その後、LocalDate変数をMyDate変数に置き換え、必要に応じてMyDateクラスの実装詳細を調整します。コードを再実行して、まだ機能することを確認します。
まとめ
この実験では、Java において LocalDate クラスのcompareTo()メソッドを使用して異なる日付を比較する方法を学びました。また、比較結果に基づいて出力を表示する方法と、異なるテストケース用にコードを修正する方法も学びました。



