Improve dates diff: for dates and datetimes

This commit is contained in:
Dassi Orleando 2017-08-28 05:23:07 +01:00
parent fdaf13c813
commit c4fd005da4

View File

@ -1,12 +1,14 @@
package com.baeldung; package com.baeldung;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.Interval;
import org.junit.Test; import org.junit.Test;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Duration; import java.time.Duration;
import java.time.ZonedDateTime; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import java.util.TimeZone; import java.util.TimeZone;
@ -30,8 +32,8 @@ public class DateDiffUnitTest {
@Test @Test
public void givenTwoDatesInJava8_whenDifferentiating_thenWeGetSix() { public void givenTwoDatesInJava8_whenDifferentiating_thenWeGetSix() {
ZonedDateTime now = ZonedDateTime.now(); LocalDate now = LocalDate.now();
ZonedDateTime sixDaysBehind = now.minusDays(6); LocalDate sixDaysBehind = now.minusDays(6);
Duration duration = Duration.between(now, sixDaysBehind); Duration duration = Duration.between(now, sixDaysBehind);
long diff = Math.abs(duration.toDays()); long diff = Math.abs(duration.toDays());
@ -40,12 +42,34 @@ public class DateDiffUnitTest {
} }
@Test @Test
public void givenTwoDatesInJodaTime_whenDifferentiating_thenWeGetSix() { public void givenTwoDateTimesInJava8_whenDifferentiating_thenWeGetSix() {
DateTime now = DateTime.now(); LocalDateTime now = LocalDateTime.now();
DateTime sixDaysBehind = now.minusDays(6); LocalDateTime sixMinutesBehind = now.minusMinutes(6);
org.joda.time.Duration duration = new org.joda.time.Duration(now, sixDaysBehind); Duration duration = Duration.between(now, sixMinutesBehind);
long diff = Math.abs(duration.getStandardDays()); long diff = Math.abs(duration.toMinutes());
assertEquals(diff, 6);
}
@Test
public void givenTwoDatesInJodaTime_whenDifferentiating_thenWeGetSix() {
org.joda.time.LocalDate now = org.joda.time.LocalDate.now();
org.joda.time.LocalDate sixDaysBehind = now.minusDays(6);
org.joda.time.Period period = new org.joda.time.Period(now, sixDaysBehind);
long diff = Math.abs(period.getDays());
assertEquals(diff, 6);
}
@Test
public void givenTwoDateTimesInJodaTime_whenDifferentiating_thenWeGetSix() {
org.joda.time.LocalDateTime now = org.joda.time.LocalDateTime.now();
org.joda.time.LocalDateTime sixMinutesBehind = now.minusMinutes(6);
org.joda.time.Period period = new org.joda.time.Period(now, sixMinutesBehind);
long diff = Math.abs(period.getDays());
assertEquals(diff, 6); assertEquals(diff, 6);
} }