diff --git a/core-java-9/src/main/java/com/baeldung/java9/time/TimeApi.java b/core-java-9/src/main/java/com/baeldung/java9/time/TimeApi.java index 9981ad0b90..ee4e35a77b 100644 --- a/core-java-9/src/main/java/com/baeldung/java9/time/TimeApi.java +++ b/core-java-9/src/main/java/com/baeldung/java9/time/TimeApi.java @@ -8,7 +8,7 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.List; import java.util.stream.Collectors; -import java.util.stream.Stream; +import java.util.stream.IntStream; public class TimeApi { @@ -29,12 +29,11 @@ public class TimeApi { } public static List getDatesBetweenUsingJava8(LocalDate startDate, LocalDate endDate) { - List datesInRange = new ArrayList(); long numOfDaysBetween = ChronoUnit.DAYS.between(startDate, endDate); - Stream.iterate(0, i -> i + 1).limit(numOfDaysBetween).forEach(i -> { - datesInRange.add(startDate.plusDays(i)); - }); - return datesInRange; + return IntStream.iterate(0, i -> i + 1) + .limit(numOfDaysBetween) + .mapToObj(i -> startDate.plusDays(i)) + .collect(Collectors.toList()); } public static List getDatesBetweenUsingJava9(LocalDate startDate, LocalDate endDate) { diff --git a/core-java-9/src/test/java/com/baeldung/java9/time/TimeApiTest.java b/core-java-9/src/test/java/com/baeldung/java9/time/TimeApiTest.java index 186902da7c..a024db19a8 100644 --- a/core-java-9/src/test/java/com/baeldung/java9/time/TimeApiTest.java +++ b/core-java-9/src/test/java/com/baeldung/java9/time/TimeApiTest.java @@ -14,11 +14,11 @@ public class TimeApiTest { public void givenGetDatesBetweenWithUsingJava7_WhenStartEndDate_thenDatesList() { Date startDate = Calendar.getInstance().getTime(); Calendar endCalendar = Calendar.getInstance(); - endCalendar.add(Calendar.DATE, 3); + endCalendar.add(Calendar.DATE, 2); Date endDate = endCalendar.getTime(); List dates = TimeApi.getDatesBetweenUsingJava7(startDate, endDate); - assertEquals(dates.size(), 3); + assertEquals(dates.size(), 2); Calendar calendar = Calendar.getInstance(); Date date1 = calendar.getTime(); @@ -31,36 +31,28 @@ public class TimeApiTest { assertEquals(dates.get(1).getDay(), date2.getDay()); assertEquals(dates.get(1).getMonth(), date2.getMonth()); assertEquals(dates.get(1).getYear(), date2.getYear()); - - calendar.add(Calendar.DATE, 1); - Date date3 = calendar.getTime(); - assertEquals(dates.get(2).getDay(), date3.getDay()); - assertEquals(dates.get(2).getMonth(), date3.getMonth()); - assertEquals(dates.get(2).getYear(), date3.getYear()); } @Test public void givenGetDatesBetweenWithUsingJava8_WhenStartEndDate_thenDatesList() { LocalDate startDate = LocalDate.now(); - LocalDate endDate = LocalDate.now().plusDays(3); + LocalDate endDate = LocalDate.now().plusDays(2); List dates = TimeApi.getDatesBetweenUsingJava8(startDate, endDate); - assertEquals(dates.size(), 3); + assertEquals(dates.size(), 2); assertEquals(dates.get(0), LocalDate.now()); assertEquals(dates.get(1), LocalDate.now().plusDays(1)); - assertEquals(dates.get(2), LocalDate.now().plusDays(2)); } @Test public void givenGetDatesBetweenWithUsingJava9_WhenStartEndDate_thenDatesList() { LocalDate startDate = LocalDate.now(); - LocalDate endDate = LocalDate.now().plusDays(3); + LocalDate endDate = LocalDate.now().plusDays(2); List dates = TimeApi.getDatesBetweenUsingJava9(startDate, endDate); - assertEquals(dates.size(), 3); + assertEquals(dates.size(), 2); assertEquals(dates.get(0), LocalDate.now()); assertEquals(dates.get(1), LocalDate.now().plusDays(1)); - assertEquals(dates.get(2), LocalDate.now().plusDays(2)); } }