使用 Java 计算日期时间段

JavaJavaBeginner
立即练习

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

介绍

Java 的 until() 方法用于获取两个日期之间的时间段,并将其作为 Period 对象返回。它计算两个日期之间的时间段,以年、月和日为单位。在本实验中,你将学习如何使用 until() 方法,并获取两个日期之间的时间段作为 Period 对象。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java/BasicSyntaxGroup -.-> java/variables("Variables") java/BasicSyntaxGroup -.-> java/output("Output") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/date("Date") java/FileandIOManagementGroup -.-> java/io("IO") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") java/SystemandDataProcessingGroup -.-> java/object_methods("Object Methods") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/variables -.-> lab-117854{{"使用 Java 计算日期时间段"}} java/output -.-> lab-117854{{"使用 Java 计算日期时间段"}} java/classes_objects -.-> lab-117854{{"使用 Java 计算日期时间段"}} java/date -.-> lab-117854{{"使用 Java 计算日期时间段"}} java/io -.-> lab-117854{{"使用 Java 计算日期时间段"}} java/working -.-> lab-117854{{"使用 Java 计算日期时间段"}} java/object_methods -.-> lab-117854{{"使用 Java 计算日期时间段"}} java/string_methods -.-> lab-117854{{"使用 Java 计算日期时间段"}} end

添加必要的导入

将以下导入语句添加到 "DateDemo.java" 文件中:

import java.time.LocalDate;
import java.time.Period;

创建 LocalDate 对象

使用 LocalDate.of() 方法为起始日期创建一个 LocalDate 对象,并将其赋值给名为 startDate 的变量。日期可以是任何你希望的有效日期。

LocalDate startDate = LocalDate.of(2002, 01, 10);

获取两个日期之间的时间段

使用 until() 方法获取起始日期和结束日期之间的时间段。该方法接受一个 ChronoLocalDate 类型的参数,可以是任何实现该接口的类对象。在本示例中,我们将使用另一个 LocalDate 对象作为结束日期。

Period period = startDate.until(LocalDate.of(2005, 10, 12));

打印时间段

使用 System.out.println() 打印两个日期之间的时间段。时间段将以 PnYnMnD 格式打印(n 表示年、月和日的数量)。

System.out.println("Period between start and end date: " + period);

获取时间段的单独值

使用 getYears()getMonths()getDays() 方法获取时间段的单独值(即年、月和日的数量)。

int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();

System.out.println("Years: " + years);
System.out.println("Months: " + months);
System.out.println("Days: " + days);

编译并运行程序

在终端中使用以下命令编译程序:

javac DateDemo.java

使用以下命令运行程序:

java DateDemo

总结

until() 方法是一个强大的工具,用于计算两个日期之间的时间段(以年、月和日为单位)。通过使用此方法,你可以轻松获取两个日期之间的时间段,并基于该时间段执行计算。在本实验中,你学习了如何使用 until() 方法获取两个日期之间的时间段作为 Period 对象,以及如何获取时间段的单独值。