java按照周、月把一个时间段拆分成多个时间区间
public List<DateRange> parseWeekRange(LocalDate startDate, LocalDate endDate) {
List<DateRange> list = new ArrayList<>();
DateRange dr = null;
LocalDate stDate = startDate;
LocalDate enDate = endDate.plusDays(1);
while (stDate.isBefore(enDate)) {
int week = stDate.getDayOfWeek().getValue();
if (dr == null || week == 1) {
dr = new DateRange();
dr.setStartDate(stDate);
}
if (week == 7 || stDate.compareTo(endDate) == 0) {
dr.setEndDate(stDate);
list.add(dr);
}
stDate = stDate.plusDays(1);
}
return list;
}
package com.example.model;
import java.time.LocalDate;
public class DateRange {
private LocalDate startDate;
private LocalDate endDate;
public LocalDate getStartDate() {
return startDate;
}
public void setStartDate(LocalDate startDate) {
this.startDate = startDate;
}
public LocalDate getEndDate() {
return endDate;
}
public void setEndDate(LocalDate endDate) {
this.endDate = endDate;
}
}