我有这样一行数据,代表营业时间
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/