package com.levelup.java.date.between; import static org.junit.Assert.assertEquals; import java.time.LocalDate; import java.time.Month; import java.time.Period; import java.time.temporal.ChronoUnit; import org.joda.time.DateTime; import org.joda.time.Years; import org.junit.Test; /** * This java example will demonstrate finding the * number of years between two dates. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/number-of-years-between-two-dates/'>Number of years between dates</a> * */ public class YearsBetweenDates { @Test public void years_between_two_dates_in_java_with_java8 () { LocalDate startDate = LocalDate.of(2004, Month.DECEMBER, 25); LocalDate endDate = LocalDate.of(2006, Month.JANUARY, 1); long numberOfYears = ChronoUnit.YEARS.between(startDate, endDate); assertEquals(1, numberOfYears); // or long numberOfYears2 = Period.between(startDate, endDate).getYears(); assertEquals(1, numberOfYears2); } @Test public void years_between_two_dates_in_java_with_joda () { DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0); DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0); Years years = Years.yearsBetween(start, end); int numberOfYears = years.getYears(); assertEquals(1, numberOfYears); } }