/**
clcye 日,月,周
*/
public LocalDateTime getExecTimeNext(String cycle) {
LocalDateTime now = LocalDateTime.now();
switch (cycle) {
case "日":
//当前时间是否超过十点,超过加一天
LocalDateTime tenOclock = LocalDateTimeUtil.beginOfDay(now).plusHours(22)
return now.isAfter(tenOclock) ? tenOclock.plusDays(1) : tenOclock;
case "周":
//本周天十点
LocalDateTime sunday = LocalDateTimeUtil.beginOfDay(now.with(DayOfWeek.SUNDAY)).plusHours(22);
//当前时间超过本周天十点,推一周
return now.isAfter(sunday) ? sunday.plusWeeks(1) : sunday;
case "月":
//本月1号10点
LocalDateTime monthOne = LocalDateTimeUtil.beginOfDay(now.withDayOfMonth(1)).plusHours(22);
//当前时间超过本月一号十点,推一个月
return now.isAfter(monthOne) ? monthOne.plusMonths(1) : monthOne;
default:
return now;
}
}
参考 hutool LocalDateTimeUtil
https://www.liaoxuefeng.com/wiki/1252599548343744/1303871087444002