Sunday, November 17, 2024
Google search engine
HomeLanguagesJavaChronoPeriod between() method in Java with Examples

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:




// 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:

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-

RELATED ARTICLES

Most Popular

Recent Comments