Java获取指定日期范围内的自定义工作日的日期
选择开始日期和结束日期以及自定义工作日(逗号分隔的字符串),返回工作日期。
代码如下:
public static void main(String[] args) {
getAllWeekDays("2024-05-01","2024-06-01","5,6").stream().forEach(System.out::println);
}
/**
*
* @param startDateStr 开始日期 "2024-05-01"
* @param endDateStr 结束日期 "2024-06-01"
* @param weekCustom 自定义工作日 1,2,3,4,5,6,7
* @return
*/
public static List<LocalDate> getAllWeekDays(String startDateStr,String endDateStr,String weekCustom){
List<LocalDate> weekDays = new ArrayList<>();
LocalDate startDate = LocalDate.parse(startDateStr);
LocalDate endDate = LocalDate.parse(endDateStr);
if (startDate.isAfter(endDate)) {
return null;
}
while (startDate.compareTo(endDate) <= 0) {
for(String week : weekCustom.split(",")){
if(String.valueOf(startDate.getDayOfWeek().getValue()).equals(week)){
weekDays.add(startDate);
}
}
startDate = startDate.plusDays(1);
}
return weekDays;
}