In this example you’ll learn how to use the java.time.Period
class (from Java 8) to calculate difference between two dates. Using Period.between()
method will give us difference between two dates in years, months and days period.
Beside using the Period
class, we also use the ChronoUnit
enum to calculate difference between two dates. We use the ChronoUnit.YEARS
, ChronoUnit.MONTHS
and ChronoUnit.DAYS
and call the between()
method to get the difference between two dates in years, months and days.
Let’s see an example below.
package org.kodejava.datetime;
import java.time.LocalDate;
import java.time.Month;
import java.time.Period;
import java.time.temporal.ChronoUnit;
public class DateDifference {
public static void main(String[] args) {
LocalDate birthDate = LocalDate.of(1995, Month.AUGUST, 17);
LocalDate now = LocalDate.now();
// Obtains a period consisting of the number of years, months and days
// between two dates.
Period age = Period.between(birthDate, now);
System.out.printf("You are now %d years, %d months and %d days old.%n",
age.getYears(), age.getMonths(), age.getDays());
// Using ChronoUnit to calculate difference in years, months and days
// between two dates.
long years = ChronoUnit.YEARS.between(birthDate, now);
long months = ChronoUnit.MONTHS.between(birthDate, now);
long days = ChronoUnit.DAYS.between(birthDate, now);
System.out.println("Diff in years = " + years);
System.out.println("Diff in months = " + months);
System.out.println("Diff in days = " + days);
}
}
The result of our code snippet above are:
You are now 26 years, 2 months and 30 days old.
Diff in years = 26
Diff in months = 314
Diff in days = 9588
Latest posts by Wayan (see all)
- How do I create a table with multiple header in iText 8? - March 16, 2024
- How do I add Image to a Table in iText 8? - March 11, 2024
- How do I downgrade Android SDK emulator version? - February 12, 2024
Thanks for the article, it helped me to implement a method getAge 🙂