public List<WeekYearVO> dayOfWeekList(Integer startDate, Integer endDate){
String startTime = String.valueOf(startDate);
String endTime = String.valueOf(endDate);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date parse = formatter.parse(startTime);
Date parse1 = formatter.parse(endTime);
String startTimeDate = simpleDateFormat.format(parse);
String endTimeDate = simpleDateFormat.format(parse1);
DateTime startDateTime =DateTime.parse(startTimeDate);
DateTime endDateTime = DateTime.parse(endTimeDate);
Days days = Days.daysBetween(startDateTime, endDateTime);
int dayCount = days.getDays();
List<WeekYearVO> result = Lists.newArrayList();
for (int i = 0; i <= (dayCount/7)+1; i++) {
DateTime standardDate = startDateTime.plusWeeks(i);
DateTime startBond = standardDate.withDayOfWeek(1);
DateTime endBond = standardDate.withDayOfWeek(7);
Integer week = standardDate.getWeekOfWeekyear();
Integer year = standardDate.getWeekyear();
WeekYearVO weekYear = new WeekYearVO(startBond.isBefore(startDateTime) ? startDateTime : startBond,
endBond.isAfter(endDateTime) ? endDateTime : endBond,
week,
year);
result.add(weekYear);
}
return result;
}
public class WeekYearVO {
private DateTime startDate;
private DateTime endDate;
private Integer week;
private Integer year;
}