Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Algorithm 营业时间分组算法_Algorithm_Date_Time - Fatal编程技术网

Algorithm 营业时间分组算法

Algorithm 营业时间分组算法,algorithm,date,time,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

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

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
day是0-6(周一到周日)的整数,iOpen

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

MON - TUE 9am - 5pm
WED 8am - 5pm
THU - FRI 9am - 5pm
SUN  9am - 5pm
基本上把有开始和结束时间的一天分组在一起

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


附:奖金问题。我存储数据的方式是否能有效地实现我的目标?

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

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


如果我用C语言编程,我会使用一个结构数组,其中结构只有打开时间、关闭时间和一个字符数组数组(即字符串数组)来存储与这些时间相关的日期。(注意:可能有更有效的存储方法,但对于您的目的来说,这似乎已经足够了)

每天循环一次。如果时间与前一行相同,则将范围的“到”日期更改为当前日期。如果没有,则开始一个新范围。另请参阅