The between() method of ChronoPeriod interface in Java is used to obtain a chronoPeriod consisting of the number of years, months, and days between two given dates (including start date and excluding end date).
This chronoPeriod is obtained as follows:
Java
- Remove complete months.
- Now, calculate the remaining number of days.
- Then, adjust to ensure that both have the same sign.
- Now, split the number of months into years and months based on a 12 month year.
- Consider a month, if the end day-of-month is greater than or equal to the start day-of-month (Eg.: from 2017-05-12 to 2018-07-18 is one year, two months and six days).
static ChronoPeriod between(ChronoLocalDate startDateInclusive,
ChronoLocalDate endDateExclusive)
Parameters:
- startDateInclusive - The start date is inclusive and must not be null.
- endDateExclusive - The end date is exclusive and must not be null.
// 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);
}
}
Output:
Reference: https://docs.oracle.com/javase/9/docs/api/java/time/chrono/ChronoPeriod.html#between-java.time.chrono.ChronoLocalDate-java.time.chrono.ChronoLocalDate-ChronoPeriod between start and end date is : P1Y6M7D