আমরা যুক্তিটি বিভিন্ন পদ্ধতিতে জাভা 7, জাভা 8 এবং জাভা 9 এ স্থানান্তর করতে পারি :
public static List<Date> getDatesRangeJava7(Date startDate, Date endDate) {
List<Date> datesInRange = new ArrayList<>();
Calendar startCalendar = new GregorianCalendar();
startCalendar.setTime(startDate);
Calendar endCalendar = new GregorianCalendar();
endCalendar.setTime(endDate);
while (startCalendar.before(endCalendar)) {
Date result = startCalendar.getTime();
datesInRange.add(result);
startCalendar.add(Calendar.DATE, 1);
}
return datesInRange;
}
public static List<LocalDate> getDatesRangeJava8(LocalDate startDate, LocalDate endDate) {
int numOfDays = (int) ChronoUnit.DAYS.between(startDate, endDate);
return IntStream.range(0, numOfDays)
.mapToObj(startDate::plusDays)
.collect(Collectors.toList());
}
public static List<LocalDate> getDatesRangeJava9(LocalDate startDate, LocalDate endDate) {
return startDate.datesUntil(endDate).collect(Collectors.toList());
}
তারপরে আমরা এই পদ্ধতিগুলি এইভাবে প্রার্থনা করতে পারি:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = formatter.parse("2010-12-20");
Date endDate = formatter.parse("2010-12-26");
List<Date> dateRangeList = getDatesRangeJava7(startDate, endDate);
System.out.println(dateRangeList);
LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
List<LocalDate> dateRangeList8 = getDatesRangeJava8(startLocalDate, endLocalDate);
System.out.println(dateRangeList8);
List<LocalDate> dateRangeList9 = getDatesRangeJava8(startLocalDate, endLocalDate);
System.out.println(dateRangeList9);
আউটপুটটি হবে:
[সোমবার 20 ডিসেম্বর 00:00:00 IST 2010, মঙ্গলবার 21 ডিসেম্বর 00:00:00 IST 2010, বুধ ডিসেম্বর 22 00:00:00 IST 2010, থু ডিসেম্বর 23 00:00:00 IST 2010, শুক্র ডিসেম্বর 24 00: 00:00 IST 2010, শনিবার 25 ডিসেম্বর 00:00:00 IST 2010]
[2010-12-22, 2010-12-21, 2010-12-22, 2010-12-23, 2010-12-24, 2010-12-25]
[2010-12-22, 2010-12-21, 2010-12-22, 2010-12-23, 2010-12-24, 2010-12-25]