📌  相关文章
📜  Java中的 ChronoPeriod between() 方法及示例

📅  最后修改于: 2022-05-13 01:55:08.068000             🧑  作者: Mango

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-