Мне нужно сделать следующее:
[*]Выполнить действие A только в течение 30 минут. если при пробуждении, дельта находится в пределах 3 минут с каждой стороны. Итак, около 11:00 выполните действие A, только если время около 10:57–11:03. Аналогично для границы 30 минут: сделайте это, если дельта составляет около 10:57–11:03 или 11:27–11:33
Я читаю время, как показано ниже, когда планировщик просыпается
Код: Выделить всё
ZonedDateTime currentDate = (ZonedDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.MINUTES));
ZonedDateTime prior = currentDate.minus(3,ChronoUnit.MINUTES);
ZonedDateTime next = currentDate.plus(3,ChronoUnit.MINUTES);
Потому что, если планировщик проснулся в 11:35, я не хочу выполнять действие для 11:30 и пропускаем обработку.
Подробнее здесь: https://stackoverflow.com/questions/786 ... e-boundary