那不就是0点-3点,3点-6点...21点-24点吗。
int period = DateTime.Now.Hour / 3 + 1;
那要是8个小时那 像 8-9 9-10 10-11 11-12....16-17 这样的话就不能用了呀?
@会飞的猫·: 那上面那个公式可以变得更通用:
int period = (DateTime.Now.Hour - StartHour) / Length + 1
StartHour是你起始时间,比如你8-9,9-10什么的,那StartHour就是8。Length是你每个间隔的小时数,比如你的例子中,每个时间段持续1小时。
折半查找
可是我的要取出的几个时间并不是一个有序的呀.... 有可能 8 15 9 10.... 这样折中就不好使了
...抱歉 我思考错了..
在考算法?
以24小时制的为例, 分成8段: 0-2,3-5,6-8,9-11,12-14, 15-17, 18-20, 21-23
取任意时间的 Hour(0-24), 整除8,得余数0-7, 对应到上面的相应时段。