【发布时间】:2018-08-27 14:02:09
【问题描述】:
我希望能够存储多家餐厅的营业时间并确定一家商店现在是否营业,但我不知道如何处理午夜后关门的地方。
以下是餐厅营业时间的示例:
Monday: 6:00AM-10:00PM
Tuesday: 6:00AM-10:00PM
Wednesday: 6:00AM-10:00PM
Thursday: 6:00AM-10:00PM
Friday: 6:00AM-11:59PM
Saturday: 0:00AM-3:00AM, 6:00AM-11:59PM
Sunday: 0:00AM-3:00AM, 6:00AM-10:00PM
我不确定我应该使用什么类型的架构来表示这一点,这样我就可以确定某家餐厅现在是否营业。
设置架构后,我的目标是能够为任何特定餐厅确定以下内容:
- 餐厅是否会在 15 分钟后营业
- 餐厅是否会在 45 分钟后关闭
因此,如果当前时间是餐厅开门前 15 分钟,则该餐厅应视为营业,如果当前时间是关闭前 45 分钟,则该餐厅应视为关闭,介于两者之间的任何时间都应视为营业,考虑到午夜的翻转。
以下是一些预期的输入和结果:
Restaurant 1
Monday: 6:00AM-10:00PM
Tuesday: 6:00AM-10:00PM
Wednesday: 6:00AM-10:00PM
Thursday: 6:00AM-10:00PM
Friday: 6:00AM-11:59PM
Saturday: 0:00AM-3:00AM, 6:00AM-11:59PM
Sunday: 0:00AM-3:00AM, 6:00AM-10:00PM
Current day/time -> Result
Monday 12:00PM -> Open
Monday 2:00AM -> Closed
Monday 5:45AM -> Open
Monday 9:30PM -> Closed
Saturday 4:00AM -> Closed
Saturday 11:55PM -> Open
Sunday 2:00AM -> Open
Sunday 2:25AM -> Closed
我不确定我将如何处理翻转时间,例如确定餐厅是否会在周六晚上 11:55 从现在开始营业 45 分钟。
这是餐厅营业时间的另一个示例:
Monday: 10:00AM-10:00PM
Tuesday: 10:00AM-10:00PM
Wednesday: 10:00AM-10:00PM
Thursday: 10:00AM-10:00PM
Friday: 10:00AM-11:59PM
Saturday: 0:00AM-11:59PM
Sunday: 0:00AM-9:00PM
周六商店24小时营业,所以我也需要能够处理这个案子。
餐厅可以 24/7 营业:
Monday: 0:00AM-11:59PM
Tuesday: 0:00AM-11:59PM
Wednesday: 0:00AM-11:59PM
Thursday: 0:00AM-11:59PM
Friday: 0:00AM-11:59PM
Saturday: 0:00AM-11:59PM
Sunday: 0:00AM-11:59PM
一家餐厅每天可以有 0、1、2 个或更多时段:
Monday: CLOSED
Tuesday: CLOSED
Wednesday: 10:00AM-2:00PM, 5:00PM-10:00PM
Thursday: 10:00AM-2:00PM, 5:00PM-10:00PM
Friday: 10:00AM-2:00PM, 5:00PM-11:59PM
Saturday: 0:00AM-3:00AM, 10:00AM-2:00PM, 5:00PM-11:59PM
Sunday: 0:00AM-3:00AM, 10:00AM-2:00PM, 5:00PM-9:00PM
所以我的目标是找出给定餐厅及其营业时间的当前时间是否介于:
- 开盘前 15 分钟,并且
- 关门前45分钟,
- 当天的任何时间段
并找到一种存储信息的好方法,以便可以为多家餐厅确定这一点。
因为每天可能有 0 个或多个周期,我认为每行存储 1 个周期是有意义的,但除此之外我不知道该怎么做。
【问题讨论】:
-
其实很明显,打烊时间比开门时间晚(而且这些餐厅从来都不是24小时营业的),所以你可以按原样存放(没有+1) .或者,如果这样更有意义,您可以存储开放时间和持续时间。