/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.WeekFields; import static java.time.temporal.ChronoUnit.WEEKS; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss','SSS"); LocalDateTime[] startDate = { LocalDateTime.parse("2018-08-24T12:18:06,166", format), LocalDateTime.parse("2018-08-24T12:18:06,166", format), LocalDateTime.parse("2018-08-24T12:18:06,166", format), }; LocalDateTime[] endDate = { LocalDateTime.parse("2018-08-24T12:18:06,166", format), LocalDateTime.parse("2018-08-30T12:18:06,166", format), LocalDateTime.parse("2019-08-24T11:18:06,166", format), }; for (int i = 0; i < startDate.length; i++) { numberOfWeeks(startDate[i], endDate[i]); } } public static void numberOfWeeks(LocalDateTime startDate, LocalDateTime endDate) { int addWeek = 0; if (startDate.get(WeekFields.ISO.weekOfYear()) < endDate.get(WeekFields.ISO.weekOfYear())) { addWeek = 1; } long weeks = WEEKS.between(startDate, endDate) + addWeek;//Get the number of weeks in your case (52) List<String> numberWeeks = new ArrayList<>(); if (weeks >= 0) { int week = 0; do { //Get the number of week LocalDateTime dt = startDate.plusWeeks(week); int weekNumber = dt.get(WeekFields.ISO.weekOfYear()); week++; } while (week <= weeks); } } }
Standard input is empty
[2018-W34] [2018-W34, 2018-W35] [2018-W34, 2018-W35, 2018-W36, 2018-W37, 2018-W38, 2018-W39, 2018-W40, 2018-W41, 2018-W42, 2018-W43, 2018-W44, 2018-W45, 2018-W46, 2018-W47, 2018-W48, 2018-W49, 2018-W50, 2018-W51, 2018-W52, 2019-W1, 2019-W2, 2019-W3, 2019-W4, 2019-W5, 2019-W6, 2019-W7, 2019-W8, 2019-W9, 2019-W10, 2019-W11, 2019-W12, 2019-W13, 2019-W14, 2019-W15, 2019-W16, 2019-W17, 2019-W18, 2019-W19, 2019-W20, 2019-W21, 2019-W22, 2019-W23, 2019-W24, 2019-W25, 2019-W26, 2019-W27, 2019-W28, 2019-W29, 2019-W30, 2019-W31, 2019-W32, 2019-W33, 2019-W34]