给出一个日期字符串(2019-05-03 17:56:00)我需要确定当前日期是否在星期二的下午5点之前,以及目标日期(在上面)是否在下一个星期三之前。我希望不要混淆。
我考虑过要把星期几与今天和目标进行比较,但是后来我意识到其中有些固有的逻辑块。
我们有一个詹金斯管道正在创建服务,现在需要更改,而我们的正常更改必须通过CAB。 CAB会议在星期三进行,更改截止日期为前一天晚上。如果有人从事的工作是星期一,而今天是星期三,那么他们显然会错过CAB流程。我正在使用SimpleDateFormat来解析日期。
我在逻辑上对此进行测试时遇到问题: 如果(今天>周二,目标<下周三){ 失败 }
答案 0 :(得分:0)
我不确定要问什么,但是让我给您一些Groovy构建块,希望它们可以编写您所需的逻辑。以下所有代码段均要求脚本import java.time.*
是下午5点之前吗?
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))
希望这会有所帮助。