gpt4 book ai didi

java - 如何创建一个方法来检查一个事件是否与一个人注册的另一个事件重叠?

转载 作者:行者123 更新时间:2023-12-02 11:11:44 26 4
gpt4 key购买 nike

我有一名类(class)导师和一个类(class) Activity 。导师可以报名从 0 到多个 Activity 。每个事件都有日期、开始时间和结束时间。我想制作一种方法来检查一个事件是否与另一个事件重叠,这意味着导师是否注册了于 2018 年 5 月 28 日 14:00 开始并于 16:30 结束的 Activity ,并且他还参加了以下 Activity :同一天从 13:00 开始到 15:00 结束,事件相互重叠,该方法应该返回 true。

这是迄今为止我的代码:

public boolean overlap(Event event) {
boolean overlap = false;

// tutorList = arraylist of tutor objects
for (Tutor t : tutorList) {
for (Event e : t.getEvents()) {
if (e.getDate().equals(event.getDate())) {
if (e.getStartTime().isAfter(event.getStartTime())
&& e.getStartTime().isBefore(event.getEndTime())) {
overlap = true;

} else if (e.getEndTime().isAfter(event.getStartTime())
&& e.getEndTime().isBefore(event.getEndTime())) {
overlap = true;
}
}
}
}
return overlap;
}

我编写的方法的问题是它并不总是按预期返回 true。

最佳答案

使用通用方法并检查双方:

 public static boolean isOverlap(Event e, Event event) {
return (e.getStartTime().isAfter(event.getStartTime())
&& e.getStartTime().isBefore(event.getEndTime()));

调用两次

  overlap = isOverlap(e, event) || isOverlap(event, e)

更好的选择是发送第一个参数开始日期,但您没有透露相关对象

关于java - 如何创建一个方法来检查一个事件是否与一个人注册的另一个事件重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50568050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com