Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java日和预订_Java_Date - Fatal编程技术网

Java日和预订

Java日和预订,java,date,Java,Date,好的,这是我之前问的一个问题的延伸,但这是我不清楚的下一步。其他一切都会准备好的,这部分让我抓狂!一些成员提供了很大的帮助,我已经在这方面取得了进展,但这只是另一个障碍 我正在按照建议创建一个预订对象,该对象将有一个开始日期和结束日期。每次预订都会有一些我需要预订的相关座位。由于大厅的总容量为46个座位,因此任何一天的总可用座位数为46个 因此,假设我在系统中有一个预订,开始日期是1月1日,结束日期是1月10日。问题是,我如何检查在这段时间内的剩余座位,看看请求的号码是否可以托管?然后,当进行第

好的,这是我之前问的一个问题的延伸,但这是我不清楚的下一步。其他一切都会准备好的,这部分让我抓狂!一些成员提供了很大的帮助,我已经在这方面取得了进展,但这只是另一个障碍

我正在按照建议创建一个预订对象,该对象将有一个开始日期和结束日期。每次预订都会有一些我需要预订的相关座位。由于大厅的总容量为46个座位,因此任何一天的总可用座位数为46个

因此,假设我在系统中有一个预订,开始日期是1月1日,结束日期是1月10日。问题是,我如何检查在这段时间内的剩余座位,看看请求的号码是否可以托管?然后,当进行第二次预订时,它必须看到该范围内的天数已经少于46天,如果可能的话,将进一步减少以进行预订

其中一位成员(我也感谢他的努力)很乐意提供一种方法来比较这一预订是在现有预订之后还是之前。提供的代码如下:

public boolean overlapsWithExisting(Booking booking) {
final Date early = booking.getStart();
final Date late = booking.getEnd();
for(Booking existing : existingBookings) {
    if(!(early.isAfter(existing.getEnd() || late.isBefore(existing.getStart()))
        return true;
}
return false;
}
我只想知道如何将46与每天联系起来,并记录预订减少的天数


感谢并衷心感谢:D

我建议将日期对象包装在一种特定于应用程序的数据结构中:我相信您的业务逻辑有一种特定类型的信息,可以用地图表示

因此,您可以创建树映射

TreeMap<Date,Integer> myBookings = new TreeMap<Date,Integer>();
现在,当您在给定日期向房间添加一个人时,只需编辑地图:

myBookings.put(date,myBookings.get(date)-1);

因此,地图数据结构包装范围内的所有日期,并存储可用座位数

在SQL中,可以执行以下操作来查找阻塞预订:

SELECT *
FROM bookings
WHERE startt < :end AND endt >= :start
LIMIT 0, 1

这也可以用java实现;按日期对预订进行排序会有所帮助。

按所有日期排序,您的意思是开始日期和结束日期范围内的日期?对不起,您能详细说明myBookings.getdate-1部分吗?这是在当天从总座位数中减去1个座位吗?我不认为这与我可以反映其他预订影响的天数问题有什么关系……对不起,我试图通过以数据为中心的方法简化问题。Java中的编码将涉及在此期间有N个座位是空的。我想知道是否有人会用代码来回答这个问题。好吧,另一个以数据为中心的提示:可能有一个并行=冗余的座椅及其占用数据结构;然后您可以执行Seat.isFreeDate from,Date till.Joop听起来是一个有趣的方法。尽管之前的树形图建议实际执行所需的包装。只要我能确定日期和席位之间的关系,我相信结构上的操作会非常相似。此外,还应在预订和日期之间创建一个链接。任何关于如何在数据结构中生成日期(即一年中可能的每一天)的提示?
SELECT *
FROM bookings
WHERE startt < :end AND endt >= :start
LIMIT 0, 1