gpt4 book ai didi

java - 检查 startTime 和 endTimer 是否在两个时间之间

转载 作者:行者123 更新时间:2023-12-01 19:44:28 24 4
gpt4 key购买 nike

我正在开展一个预订 field 的项目。目的是如果 field 在此期间已经预订,则不允许预订

 if (!alreadyBookedSet.isEmpty()) {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");

logger.debug("Check if the venue is already booked on this date" + booking.getBookingDate());
for (Booking alreadyBooked : alreadyBookedSet) {
String bookingDate = alreadyBooked.getBookingDate();

if (bookingDate.equals(booking.getBookingDate())) {

String alreadyBookedTimeStart = alreadyBooked.getTimeStart();
Date alreadyBookedTimeStartDate = simpleDateFormat.parse(alreadyBookedTimeStart);

String alreaydBookedTimeEnd = alreadyBooked.getTimeEnd();
Date alreaydBookedTimeEndDate = simpleDateFormat.parse(alreaydBookedTimeEnd);


String bookingTimeStart = booking.getTimeStart();
Date bookingTimeStartDate = simpleDateFormat.parse(bookingTimeStart);

String bookingTimeEnd = booking.getTimeEnd();
Date bookingTimeEndDate = simpleDateFormat.parse(bookingTimeEnd);

if (!bookingTimeStartDate.before(alreadyBookedTimeStartDate) && !bookingTimeEndDate.after(alreaydBookedTimeEndDate)) {
return true;
}
}
}
}

当下午 2:00 至下午 3:00 期间 field 已被预订,而我们想要预订下午 1:00 至下午 3:00 期间时,我遇到了问题。这会返回 field 尚未被预订的情况。

有没有办法解决java中方法之间的所有概率?

最佳答案

您需要检查是否存在重叠,因此逻辑应该是

if(!bookingTimeStartDate.before(alreadyBookedTimeStartDate) && 
!bookingTimeStartDate.after(alreaydBookedTimeEndDate) ||
!bookingTimeEndDate.before(alreaydBookedTimeStartDate) &&
!bookingTimeEndDate.after(alreaydBookedTimeEndDate))

这是正确的逻辑,因为如果任何一个时间不在开始之前和结束之后,它们一定在中间,因此是重叠的。

关于java - 检查 startTime 和 endTimer 是否在两个时间之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141295/

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