0

我有以下情况:两个任务,AB,每个任务都有一个给定的时间窗口,指定任务可以开始的最早时间,调用earliestStart和任务可以结束的最晚时间,调用latestEnd。此外,任务有一个给定的duration,即等于或小于latestEnd - earliestStart该特定任务的 。例如,任务A必须在 内执行08:00-10:00,持续时间为 1 小时,而任务B必须在 内执行08:50-09:55,持续时间为 1 小时。我怎样才能在java中轻松检查,这是正确的吗?(证明它们不重叠):

taskA.earliestStart + taskA.duration < taskB.latestEnd - taskB.duration 
|| taskB.earliestStart + taskB.duration < taskA.latestEnd - taskA.duration
4

1 回答 1

1

用于LocalTime表示没有日期和时区的时间。

LocalTime aStart = LocalTime.of( 8 , 0 ) ;
Duration aDuration = Duration.ofHours( 1 ) ;
LocalTime aStop = aStart.plus( aDuration ) ;

比较使用isBeforeisAfterequals方法。

于 2019-03-18T07:26:26.047 回答