周偏移计算

beetlsql3-dev
Mlxa0324 2 years ago
parent 4f8adc03ce
commit cd8c9b4993

@ -1,8 +1,8 @@
package com.ibeetl.admin.core.util;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.lang3.Range;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@ -114,8 +114,8 @@ public class DateUtil extends cn.hutool.core.date.DateUtil {
}
/**
*
*
*
*
*
* @param startTime
* @param date
@ -124,15 +124,14 @@ public class DateUtil extends cn.hutool.core.date.DateUtil {
* @param <T>
*/
public static <T extends Date> Integer weekNumberInList(T startTime, T date, int weekNumber) {
List<List<T>> lists = new ArrayList<>();
for (int i = 1; i <= weekNumber; i++) {
List<T> dateTimes = (List<T>) rangeToList(startTime, offsetWeek(startTime, i), DateField.DAY_OF_YEAR);
lists.add(dateTimes);
}
// 偏移周
T tempEndTime = (T)offsetWeek(startTime, i);
// Range范围。结束时间向前偏移一天
Range<T> range = (Range<T>) Range.between(startTime, offsetDay(tempEndTime, -1));
for (int i = 0; i < lists.size(); i++) {
if(((T)lists.get(i)).compareTo(date) == 0) {
// 是否包含待验证的时间对象
if(range.contains(date)) {
return i;
}
}

@ -39,7 +39,6 @@ import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import static cn.hutool.core.collection.CollUtil.join;
@ -340,7 +339,7 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService<Tea
// 一个教室ID对应一个或多个开课节次ID
// 为防止lambda里修改集合。
CopyOnWriteArrayList<DateTime> finalDateTimes = new CopyOnWriteArrayList<>(dateTimes);
// CopyOnWriteArrayList<DateTime> finalDateTimes = new CopyOnWriteArrayList<>(dateTimes);
// 班级和课次列表遍历
options.getSessionClassList().forEach((sessionClassId , sessionTagIdsList) -> {
@ -362,8 +361,8 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService<Tea
item.setTeacherOpenCourseId(options.getTeacherOpenCourseId());
// 根据具体周
// item.setTeacherOpenCourseScheduleSessionSnapCurrentWeekNumber(weekNumberInList(finalDateTimes, dateTime));
// 根据
Integer currentWeekNumber = weekNumberInList(DateUtil.parseDateTime(options.getStartTime()), dateTime, options.getWeekNum());
// 根据实际业务
Integer currentWeekNumber = weekNumberInList(parseDate(options.getStartTime()), dateTime, options.getWeekNum());
item.setTeacherOpenCourseScheduleSessionSnapCurrentWeekNumber(currentWeekNumber);
});

Loading…
Cancel
Save