在过去的一周半里,我一直在为这个算法绞尽脑汁,但还是没能成功。
基本上我有一个时间表(我知道“边界”的时间值)
我有红色部分(人们进出工作场所的运动)我想知道的是人们在工作场所的时间是在他们的时间表内,我不在乎他们是在工作前还是工作后,还是在午休时间。
你有什么建议吗我可以在这里应用的数学理论或规则或者你看到的一个类似的问题你能告诉我吗我一直很难找到解决办法任何帮助都将不胜感激。
例如:
日程安排:
上午7:30(开始)下午12:00(午休)
下午1:30(午休结束)下午5:00(工作日结束)
白天的人员流动:
早上6:50,早上6:55
上午7:00,上午11:45
进:下午1:45,出:下午5:05
所以,我的预期输出是:7:30的时间跨度(它忽略了工作日程之外的工作时间)
最佳答案
把一天分成1440个一分钟的增量。这是你的场地。
集合“S”是该空间的一个子集,即预定分钟数。
集合“w”是在作业上花费的时间,是该空间的一个子集。
“S”和“W”的交叉点是该人员在其计划内的时间量(以分钟为单位-根据需要转换为hh:mm)。
使用其他的集合算法,你可以找到它们本应该出现但没有出现的时间,等等。
关于c# - 两组数据的交集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17910198/