public static List<List<Date>> weekListOfMonth(String month){
Date date = DateUtil.parse(month,"yyyyMM");
Date start = DateUtil.beginOfMonth(date);
Date end = DateUtil.endOfMonth(date);
long num = DateUtil.betweenDay(start,end,true);
List<List<Date>> resultList = new ArrayList<>();
int currentWeek =0;
List<Date> weekList = null;
for(long i=0;i<=num;i++){
Date tempDate = DateUtil.offsetDay(start,(int)i);
int weekNum = DateUtil.weekOfMonth(tempDate);
if(i==0){
weekList = new ArrayList<>();
weekList.add(tempDate);
currentWeek = weekNum;
}else{
if(weekNum == currentWeek){
weekList.add(tempDate);
if(DateUtil.dayOfWeek(tempDate) ==7){
resultList.add(weekList);
}
}else{
currentWeek = weekNum;
weekList = new ArrayList<>();
weekList.add(tempDate);
}
}
}
return resultList;
}
public static void main(String[] args) { System.out.println(weekListOfMonth("202101")); }
输出:
[[2021-01-01 00:00:00, 2021-01-02 00:00:00, 2021-01-03 00:00:00], [2021-01-04 00:00:00, 2021-01-05 00:00:00, 2021-01-06 00:00:00, 2021-01-07 00:00:00, 2021-01-08 00:00:00, 2021-01-09 00:00:00, 2021-01-10 00:00:00], [2021-01-11 00:00:00, 2021-01-12 00:00:00, 2021-01-13 00:00:00, 2021-01-14 00:00:00, 2021-01-15 00:00:00, 2021-01-16 00:00:00, 2021-01-17 00:00:00], [2021-01-18 00:00:00, 2021-01-19 00:00:00, 2021-01-20 00:00:00, 2021-01-21 00:00:00, 2021-01-22 00:00:00, 2021-01-23 00:00:00, 2021-01-24 00:00:00], [2021-01-25 00:00:00, 2021-01-26 00:00:00, 2021-01-27 00:00:00, 2021-01-28 00:00:00, 2021-01-29 00:00:00, 2021-01-30 00:00:00, 2021-01-31 00:00:00]]