你想每天结合一堆间隔.坚持24小时格式(实际上我将其转换为秒),直到你必须将其转换为人性化的格式.
麻烦的是,当你允许几秒钟时…一个提前1秒钟关闭的餐馆将被遗漏:(也许你需要允许15或5分钟的增量.如果你不得不在数据库中舍入数据.那么,方法是:使用间隔数据结构,将给定日期的所有间隔合并在一起.现在反转字典.而不是将天数映射到间隔,将间隔映射到天.现在找到一种方法来智能地表示这些天组.例如,set( 1,2,3)可以显示为“MW”,所以我建议:对于集合{1,2,3,4,5,6,7}(或{1,2,3, 4,5})找到最好的人类表示(手工).现在对这个逻辑进行硬编码 – 将其保存到字典中,该字典将排序后的字符串(这很重要)(例如“1235”)映射到人类表示,例如“MW” ,F“.显示1-3,5-8很容易,一旦你使用间隔对象,如上面的链接所述.祝你好运!让我知道你遇到了什么问题.
编辑:
这不是他们拥有的最好的例子(不显示重叠间隔的联合),但是你关心“|”操作者
unioned:
>>> interval[1, 4] | interval[2, 5]
interval([1.0, 5.0])
>>> interval[1, 2] | interval[4, 5]
interval([1.0, 2.0], [4.0, 5.0])
你可以自己实现这个类,但它可能容易出错.