首页 新闻 会员 周边

请大家帮忙出出主意,一个小问题

0
悬赏园豆:5 [已解决问题] 解决于 2012-03-31 13:29

请大家帮忙出出主意

一天被分成了8个时间段,如何判断一个时间在哪个时间段中,有什么好的主意,除了判断8次以外还有别的吗?

会飞的猫·的主页 会飞的猫· | 初学一级 | 园豆:166
提问于:2012-03-31 09:54
< >
分享
最佳答案
0

那不就是0点-3点,3点-6点...21点-24点吗。

int period = DateTime.Now.Hour / 3 + 1;
收获园豆:5
水牛刀刀 | 大侠五级 |园豆:6350 | 2012-03-31 10:13

那要是8个小时那   像  8-9  9-10  10-11  11-12....16-17   这样的话就不能用了呀?

会飞的猫· | 园豆:166 (初学一级) | 2012-03-31 10:21

@会飞的猫·: 那上面那个公式可以变得更通用:

int period = (DateTime.Now.Hour - StartHour) / Length + 1

StartHour是你起始时间,比如你8-9,9-10什么的,那StartHour就是8。Length是你每个间隔的小时数,比如你的例子中,每个时间段持续1小时。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-03-31 10:25
其他回答(3)
1

折半查找

张凤鸣 | 园豆:204 (菜鸟二级) | 2012-03-31 09:58

可是我的要取出的几个时间并不是一个有序的呀....   有可能  8  15  9  10....  这样折中就不好使了

支持(0) 反对(0) 会飞的猫· | 园豆:166 (初学一级) | 2012-03-31 10:24

...抱歉  我思考错了..

支持(0) 反对(0) 会飞的猫· | 园豆:166 (初学一级) | 2012-03-31 10:25
0

在考算法?

辰666 | 园豆:222 (菜鸟二级) | 2012-03-31 10:00
0

以24小时制的为例, 分成8段: 0-2,3-5,6-8,9-11,12-14, 15-17, 18-20, 21-23

取任意时间的 Hour(0-24), 整除8,得余数0-7, 对应到上面的相应时段。 

vanzheng | 园豆:292 (菜鸟二级) | 2012-03-31 12:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册