鱼C论坛

 找回密码
 立即注册
查看: 2259|回复: 12

[技术交流] 每日一题已经好久没出了,我发个我在工作中遇到的一个难题

[复制链接]
发表于 2018-1-30 13:53:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 cnkizy 于 2018-1-30 13:56 编辑

这个难题是我在实际工作中遇到的,代码目的是用来统计某个上位机app发送数据的时长,应客户要求被领导故意设计成这样的,要是我才不会这么写呢,也怪自己算法学的差,数据结构学的差。导致加班加到凌晨,脑袋爆炸。现在想想还是耿耿于怀,现在和鱼友们一起看看是啥题。


首先定义以下时间概念


    Day                        Middle            Night
[22:00-6:00)  [6:00-14:00)      [14:00-22:00)


'['是开区间符号                ')'是闭区间符号

上面的话翻译过来意思是

昨晚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小时计算

现给出一段时间

#                        [0]起始时间,[1]结束时间
  1. timeArray = [('10:00','18:00'),        #假设这天是1月1日
  2.                         ('12:00','14:00'),        #假设这天是1月2日
  3.                         ('13:00','19:00'),        #假设这天是1月3日
  4.                         ('9:00','5:00')        #假设这天是1月4日
  5.                         ]
复制代码



输出的结果是
>>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。 希望接手的兄dei不要来砍我。
                 

如果有不完整或疏漏的地方请予以指正,我会尽快修正,谢谢各位鱼油。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 10:02:31 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 10:41:54 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 11:01:52 | 显示全部楼层

回帖奖励 +2 鱼币

可不可以参考下你的源代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 13:07:27 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-20 13:10:26 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-20 15:01:39 | 显示全部楼层

回帖奖励 +2 鱼币

是不是就是统计 上午 中午 晚上  总共用几个小时是不
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-22 11:03:18 | 显示全部楼层

回帖奖励 +2 鱼币

看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-22 13:52:21 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-24 15:18:13 | 显示全部楼层

回帖奖励 +2 鱼币

奇特
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-21 18:03:30 | 显示全部楼层

回帖奖励 +2 鱼币

  厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 09:42:11 | 显示全部楼层

回帖奖励 +2 鱼币

厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-17 09:51:13 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 17:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表