public List<Integer> extraction(List<Integer> days, int wkd) {
if (wkd < 1 || wkd > 5)
throw new PreconditionException(400, CodeEnum.PARAM_INVALID.getCode(), "星期数无效");
if (CollUtil.isEmpty(days))
return new ArrayList<>();
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1);
int startWeek = AdTimeUtils.getLocalDateTime(calendar.getTime()).getDayOfWeek().getValue();
// 需要截取的数量
int first = 7 - startWeek + 1; // 第一周几天
int need = wkd == 1 ? first : 7;
// 第一周,起始0,其余则第一周数量+后续追加数量,后续追加的要排除一页
int startIndex = wkd == 1 ? 0 : first + (wkd - 2) * need;
// 起始超出范围,返回空
if (startIndex >= days.size())
return new ArrayList<>();
return days.subList(startIndex, Math.min(days.size(), startIndex + need));
}
public static void main(String[] args) {
ArrayList<Integer> integers = new ArrayList<>();
for (int i = 1; i <= 30; i++) {
integers.add(i);
}
DataStatisticsService service = new DataStatisticsService();
for (int i = 1; i <= 5; i++) {
List<Integer> extraction = service.extraction(integers, i);
System.out.println(extraction);
}
}
从每月数据中按每周截取,每次只截取当前月份的数据,不显示上月
最新推荐文章于 2023-06-01 11:16:26 发布