Java LocalDate compareTo 方法

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用 Java 中 LocalDate 类的 compareTo() 方法。该方法用于比较两个不同的日期,并返回一个整数值。

导入 LocalDate 包

在文件的开头添加以下导入语句以导入 LocalDate 类:

import java.time.LocalDate;

使用 compareTo() 比较日期

在这一步中,你将使用 compareTo() 方法比较两个不同的日期,并根据比较结果显示输出。将以下代码添加到 main() 方法中:

    // Take a date
    LocalDate date1 = LocalDate.of(2021, 12, 31);
    // Displaying date
    System.out.println("Date 1 is : "+date1);
    // Take another date
    LocalDate date2 = LocalDate.now();
    // Displaying date
    System.out.println("Date 2 is : "+date2);

    // Comparing two dates using compareTo()
    int result = date1.compareTo(date2);

    // Display whether date 1 is before, after or equals to date 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);

比较相同日期

在这一步中,你将更改用于比较的日期,使其相同。将代码中的以下行替换为与 date1 相同的日期并重新运行代码:

LocalDate date2 = LocalDate.now();

比较今天的日期与未来日期

在这一步中,你将比较今天的日期与一个未来的日期。将代码中的以下行替换为未来的任意日期并重新运行代码:

LocalDate date1 = LocalDate.of(2021, 12, 31);

比较今天的日期与过去日期

在这一步中,你将比较今天的日期与一个过去的日期。将代码中的以下行替换为过去的任意日期并重新运行代码:

LocalDate date1 = LocalDate.of(2021, 12, 31);

使用不同的 ChronoLocalDate 对象

在这一步中,你将使用一个从 ChronoLocalDate 而非 LocalDate 扩展的不同对象,并比较两个不同的日期。首先,创建一个名为 MyDate 的新类,并添加以下代码:

import java.time.chrono.ChronoLocalDate;

public class MyDate implements ChronoLocalDate {

  // 添加 ChronoLocalDate 接口的实现细节
  // ...

}

然后,将 LocalDate 变量替换为 MyDate 变量,并根据需要调整 MyDate 类的实现细节。重新运行代码以确保其仍然正常工作。

总结

在本实验中,你学习了如何使用 LocalDate 类的 compareTo() 方法在 Java 中比较不同的日期。你还学习了如何根据比较结果显示输出,以及如何修改代码以适应不同的测试用例。