Java ChronoPeriod between()方法及示例

来源:这里教程网 时间:2026-02-17 20:41:13 作者:

Java ChronoPeriod between()方法及示例

Java中 ChronoPeriod接口between() 方法用于获得一个由两个给定日期(包括开始日期和不包括结束日期)之间的年、月、日数组成的ChronoPeriod。

这个ChronoPeriod的获得方法如下。

删除完整的月份。现在,计算剩余的天数。然后,调整以确保两者的符号相同。现在,根据12个月的年份,把月数分成年和月。如果月末日大于或等于月初日,则认为是一个月(例如:从2017-05-12到2018-07-18是一年两个月六天)。

注意: 从上述公式得到的ChronoPeriod可以是一个负数,如果结束时间在开始时间之前。负号在年、月、日中都是一样的。

语法

static ChronoPeriod between(ChronoLocalDate startDateInclusive,                            ChronoLocalDate endDateExclusive)

参数

startDateInclusive – 开始日期是包括在内的,不能为空。endDateExclusive – 结束日期是排他性的,不能为空。

返回值: chronoPeriod的between()函数返回给定的开始和结束日期之间的ChronoPeriod。

下面是上述函数的实现。

// Java code to show the chronoPeriod// between the given start and end date  import java.time.*;import java.time.chrono.*;  public class ChronoPeriodClass {      // Function to calculate chronoPeriod between    // start and end date    static void    calculateChronoPeriod(ChronoLocalDate startDate,                          ChronoLocalDate endDate)    {        ChronoPeriod chronoPeriod            = ChronoPeriod.between(startDate, endDate);        System.out.println("ChronoPeriod between start and end "                           + "date is : " + chronoPeriod);    }      // Driver Code    public static void main(String[] args)    {        // Start date        ChronoLocalDate startDate            = LocalDate.parse("2017-02-13");          // End date        ChronoLocalDate endDate            = LocalDate.parse("2018-08-20");          calculateChronoPeriod(startDate, endDate);    }}

输出:

ChronoPeriod between start and end date is : P1Y6M7D

参考资料 : https://docs.oracle.com/javase/9/docs/api/java/time/chrono/ChronoPeriod.html#between-java.time.chrono.ChronoLocalDate-java.time.chrono.ChronoLocalDate-

相关推荐