Java の LocalDate の compareTo メソッド

JavaBeginner
オンラインで実践に進む

はじめに

この実験では、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()メソッドを使用して異なる日付を比較する方法を学びました。また、比較結果に基づいて出力を表示する方法と、異なるテストケース用にコードを修正する方法も学びました。