ChronoPeriod between() method in Java with Examples

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:

  • 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).

Note: ChronoPeriod obtained from above formula can be a negative, if the end is before the start. The negative sign will be the same in each of year, month and day.



Syntax:

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.

Return Value: The between() function of chronoPeriod returns the chronoPeriod between the given start and end date.

Below is the implementation of the above function:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


Output:

ChronoPeriod between start and end date is : P1Y6M7D

Reference: https://docs.oracle.com/javase/9/docs/api/java/time/chrono/ChronoPeriod.html#between-java.time.chrono.ChronoLocalDate-java.time.chrono.ChronoLocalDate-



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.