每日一题已经好久没出了,我发个我在工作中遇到的一个难题
本帖最后由 cnkizy 于 2018-1-30 13:56 编辑这个难题是我在实际工作中遇到的,代码目的是用来统计某个上位机app发送数据的时长,应客户要求被领导故意设计成这样的,要是我才不会这么写呢,也怪自己算法学的差,数据结构学的差。导致加班加到凌晨,脑袋爆炸。现在想想还是耿耿于怀,现在和鱼友们一起看看是啥题。
首先定义以下时间概念
Day Middle Night
'['是开区间符号 ')'是闭区间符号
上面的话翻译过来意思是
昨晚22:00 - 今天的5:59:59 这个时间段为 'Day'
今天6:00 - 今天的13:59:59 这个时间段为 'Middle'
今天14:00 - 今天的21:59:59 这个时间段为 'Night'
我当时使用的时间格式是‘yyyy-MM-dd HH:mm:ss’ 当然了这里看鱼油爱好了,随意吧。以下时间不足1小时按1小时计算
现给出一段时间
# 起始时间,结束时间
timeArray = [('10:00','18:00'), #假设这天是1月1日
('12:00','14:00'), #假设这天是1月2日
('13:00','19:00'), #假设这天是1月3日
('9:00','5:00') #假设这天是1月4日
]
输出的结果是
>>1月1日 Day:4,Middle:4,Night:0
>>1月2日 Day:2,Middle:0,Night:0
>>1月3日 Day:0,Middle:1,Night:3
>>1月4日 Day:5,Middle:8,Night:1
我来分析下 第1个
10:00 在 'Day' 区间 14:00(day结束位置) - 10:00 = 4
18:00 在 'Middle'区间 18:00 - 14:00(mid起始位置) = 4
'Night' 区间 None = 0
第2个
12:00 在 'Day' 区间 14:00 - 12:00 = 2
14:00 在 'Middle'区间 14:00 - 14:00 = 0
'Night' 区间 None = 0
第3个
'Day' 区间 None = 0
13:00 在 'Middle'区间 14:00 - 13:00 = 1
19:00 在 'Night' 区间 22:00 - 19:00 = 3
第4个
9:00 在 'Day' 区间 14:00 - 9:00 = 5
经过 'Middle'区间 = 8
5:00 在 'Night'区间 6:00-5:00 = 1
总体说来也不算太难,要冷静分析,我当时加班加糊涂了,乱写一通,结果对就Ok了,也不管有无BUG。{:10_266:} 希望接手的兄dei不要来砍我。
如果有不完整或疏漏的地方请予以指正,我会尽快修正,谢谢各位鱼油。
{:10_279:} {:10_245:} 可不可以参考下你的源代码 {:5_92:} {:5_108:} 是不是就是统计 上午 中午 晚上总共用几个小时是不
看看{:10_256:} {:10_266:} {:10_257:}{:10_257:}{:10_257:}奇特 {:5_97:}厉害 {:10_256:}厉害 {:5_90:}
页:
[1]