Я не совсем уверен, о чем идет речь, но позвольте мне дать вам некоторые строительные блоки Groovy, которые, надеюсь, позволят вам написать необходимую логику. Для всех приведенных ниже фрагментов требуется скрипт import java.time.*
До 17:00?
boolean isBefore5pm = LocalTime.now().hour <= 17
Это вторник?
boolean isTuesday = LocalDate.now().dayOfWeek == DayOfWeek.TUESDAY
Возможно, выполнение некоторого сочетания вышеперечисленного поможет вам определить ответ на ваш первый вопрос. Что касается второй части.
Какая дата в следующую среду?
Учитывая эту функцию общего назначения, которая берет день недели и возвращает следующую дату, приходящуюся на этот день ...
LocalDate nextDayOfWeekFrom(LocalDate date, DayOfWeek dow) {
int daysTil = dow.value - date.dayOfWeek.value
date + (daysTil + (daysTil <= 0 ? 7 : 0))
}
... вы можете определить следующую среду, позвонив по номеру
def nextWednesday = nextDayOfWeekFrom(LocalDate.now(), DayOfWeek.WEDNESDAY)
Когда наступит следующий срок CAB?
def cabDeadline = LocalDateTime.of(nextDayOfWeekFrom(LocalDate.now(), DayOfWeek.TUESDAY),
LocalTime.of(17, 0))
Надеюсь, это поможет.