algorithm - 营业时间分组算法

标签 algorithm date time

我有这样一行数据,代表营业时间

day / opentime   / closetime  / isOpen
0      09:00:00    17:00:00      true
1      09:00:00    17:00:00      true
2      08:00:00    17:00:00      true
3      09:00:00    17:00:00      true
4      09:00:00    17:00:00      true
5                                false
6      09:00:00    17:00:00      true

天是从 0-6(周一到周日)和 iOpen 的整数

在重新发明轮子并开始思考新算法之前,我想知道是否已经有一些算法可以做类似的事情:

MON - TUE 9am - 5pm
WED 8am - 5pm
THU - FRI 9am - 5pm
SUN  9am - 5pm

基本上是将开市时间和闭市时间分组在一起?

我不是在要求一个现成的算法,而是更多的建议,如果已经有类似的事情已经完成,应该去哪里寻找。

ps:加分题。我存储数据的方式能否有效地实现我的目标?

最佳答案

这是一个相当简单的算法。只需在代码中写下你作为人类会做什么。

作为一个人,当我看你给我的数据时,我从星期一开始,我在一张纸上写下开/关时间,并在旁边写上“星期一”。然后我看看星期二。如果星期二的开盘/收盘时间与前一天相同,那么我只需转到我的纸上已经写下时间的地方,然后在星期一旁边添加“星期二”。我一直这样做,直到找到与前一天不同的开/关时间。在这种情况下,我会在纸上换一行,写下新的开/关时间,然后继续这样直到结束。

如果我用 C 编写程序,我会使用一个结构数组,其中该结构只有打开时间、关闭时间和一个字符数组(即字符串数组)来存储与这些时间相关的日期。 (注意:可能有更有效的存储方式,但这似乎足以满足您的目的)

关于algorithm - 营业时间分组算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421633/

相关文章:

java - 如何使用 GregorianCalendar 在 Java 中获取当前周数和年份?

javascript - 我在 javascript 中的函数不正确地重叠

ios - After Effects Rotoscoping 笔刷算法

javascript - 在 JavaScript 中将日期转换为 dd/mm/yyyy 格式

c - fgets 与 sscanf 结合

javascript - 没有 eval 的 JSON 日期?

java - 在 Android 的 SharedPreferences 中存储时间的正确方法?

time - 获取有关 ntp 调整的通知

algorithm - 计算邻接表中每个顶点的可达性

java - 修改 A Star 算法以连接逻辑方案中的门