public static List<DateVo> getBetweenWeeks(String startDate, String endDate) {
List<DateVo> dateVoList = null;
try {
List<String> listWeekOrMonth = new ArrayList<>();
dateVoList = new ArrayList<>();
Date sDate = sdf.parse(startDate);
Calendar sCalendar = Calendar.getInstance();
sCalendar.setFirstDayOfWeek(Calendar.MONDAY);
sCalendar.setTime(sDate);
Date eDate = sdf.parse(endDate);
Calendar eCalendar = Calendar.getInstance();
eCalendar.setFirstDayOfWeek(Calendar.MONDAY);
eCalendar.setTime(eDate);
boolean bool = true;
while (sCalendar.getTime().getTime() < eCalendar.getTime().getTime()) {
if (bool || sCalendar.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY || sCalendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
listWeekOrMonth.add(sdf.format(sCalendar.getTime()));
bool = false;
}
sCalendar.add(Calendar.DAY_OF_MONTH, 1);
}
listWeekOrMonth.add(sdf.format(eCalendar.getTime()));
if (listWeekOrMonth.size() % 2 != 0) {
listWeekOrMonth.add(sdf.format(eCalendar.getTime()));
}
for (int i = 0; i < listWeekOrMonth.size() - 1; i++) {
if (i % 2 == 0) {
DateVo dateVo = new DateVo();
dateVo.setBeginDate(listWeekOrMonth.get(i));
dateVo.setEndDate(listWeekOrMonth.get(i + 1));
dateVoList.add(dateVo);
}
}
} catch (ParseException e) {
e.printStackTrace();
}
return dateVoList;
}
@Data
@NoArgsConstructor
public static class DateVo {
private String beginDate;
private String endDate;
private int dayNum;
public DateVo(String beginDate, String endDate) {
this.beginDate = beginDate;
this.endDate = endDate;
}
}