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-