java - Date.after 和 Data.after 位于同一 if 语句中

标签 java intervals date-comparison date

如果我有一个房间列表和一个名为 room1 的特定房间,该房间是在 2018 年 12 月 12 日至 2018 年 12 月 20 日期间预订的。

另一位用户想要在 2018 年 12 月 15 日至 2018 年 12 月 25 日期间预订该房间。我尝试使用 date.after(checkInDate)date.after(checkOutDate) 但它不起作用。如何解决?

 Date tempStart = checkinDate;
 Date tempEnd = checkoutDate;

 LinkedList<Integer> roomNbrs = new LinkedList<>();

 for (Booking b: books) {

     if (tempStart.equals(b.getCheckinDate()) && tempEnd.equals(b.getCheckoutDate()) && !roomNbrs.contains(roomNbr) ||
                (tempStart.after(b.getCheckinDate())) && ((tempEnd.before(b.getCheckoutDate()) || tempEnd.equals(b.getCheckoutDate()))
                        && !roomNbrs.contains(roomNbr)) ||
                ((tempStart.before(b.getCheckinDate()) || tempStart.equals(b.getCheckinDate()))
                        && tempEnd.before(b.getCheckoutDate()) && !roomNbrs.contains(roomNbr))){

             roomNbrs.add(b.getRoomNbr());
     }
}

最佳答案

我设法解决了这个问题,解决方案如下:

private void viewAvailableRoomDate(Date tempStart, Date tempEnd) {

    LinkedList<Integer> roomNbrs = new LinkedList<>();

    for (Booking b : books) {

        if ((!(tempStart.after(b.getCheckinDate()) && tempEnd.after(b.getCheckinDate())) ||
                (tempStart.before(b.getCheckoutDate()) && tempEnd.after(b.getCheckoutDate())) ||
                (tempStart.before(b.getCheckinDate()) && tempEnd.after(b.getCheckoutDate()))) ||
                (tempStart.after(b.getCheckinDate()) && tempEnd.before(b.getCheckoutDate()))){
            roomNbrs.add(b.getRoomNbr());
        }
    }

}

关于java - Date.after 和 Data.after 位于同一 if 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53643483/

相关文章:

java - 如何自定义 keycloak AccountPages?

java - Joda Time : How to convert String to LocalDate?

sql - to_char的格式间隔

sql - postgresql 中奇怪的间隔

java - 如何将 int 值与多个字符串值进行比较。所以它适用于数据库。值(value)转化失败

mysql - 从 MySQL 表中获取在某个日期或之前添加并在某个日期或之后删除的计数

javascript - 如何将此字符串 "07/10/2017 18:30 PM"转换为 JavaScript 日期类型

Java计算每次递归调用的结束

java - 尝试将生成的输入流与资源文件进行比较 - jUnit

javascript - 在执行特定命令后重置间隔