1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
/**
* 获取指定时间内星期几的所有日期
* @Author liuwenxu.com (2020-04-26)
*
* @param start 开始日期 2020-04-01
* @param end 截止日期 2020-05-01
* @param week 星期几 1
* @return ArrayList<LocalDate> [2020-04-06, 2020-04-13, 2020-04-20, 2020-04-27]
*/
public static List getWeekInTimes(LocalDate start, LocalDate end, int week) {
ArrayList<LocalDate> list = new ArrayList<>();
long days = ChronoUnit.DAYS.between(start, end);
log.info("[{}~{})之间共有:{}天", start, end, days);
Calendar startCalender = GregorianCalendar.from(start.atStartOfDay(ZoneId.systemDefault()));
for (int i = 0; i < days - 1; i++) {
startCalender.add(Calendar.DATE, 1);
if (startCalender.get(Calendar.DAY_OF_WEEK) == week + 1) {// 1代表周日,7代表周六
list.add(
LocalDateTime.ofInstant(
startCalender.toInstant(),
ZoneOffset.systemDefault()
).toLocalDate()
);
}
}
log.info("[{}~{})之间共有:{}个 星期{}", start, end, list.size(), week);
return list;
}
|