1.很简单的一段代码,用户选择一个时间段,保存到数据库,下发指令时判断当前时间是否位于选择时间段内,是启用。
可以选择存放短时间类型,也可以选择存放长日期类型,如果选择存放长日期,那长日期就固定某一天,方便过滤。
我本人使用的是一个长日期,方便比较:界面如下:
如果禁用时间小于启用时间,那么就加一天
/// <summary> /// 启用时间 /// </summary> public DateTime Device_WorkTimeS { get { return Convert.ToDateTime("2000-01-01 "+timeEditS.Text) ; } set { value = Device_WorkTimeS; } } /// <summary> /// 禁用时间 /// </summary> public DateTime Device_WorkTimeE { get { return Convert.ToDateTime("2000-01-01 " + timeEditE.Text); } set { value = Device_WorkTimeE; } }
数据库存放如下:
当收到启用指令时判断时间 ,查询符合开启条件的设备,正常就是时间段在范围内就行即大于小的,小于大的。但是如果选的时间小于启用时间,加一天也小于禁用时间,说明该时间也在启用范围内,比如上述时间范围内选择0:30。
DateTime nowtime = Convert.ToDateTime("2000-01-01 " + DateTime.Now.ToShortTimeString());
linq 查询:
var deviceNewList =(from v in lightingList where ( (nowtime>v.WorkTimeS && nowtime<v.WorkTimeE)||(nowtime < v.WorkTimeS && nowtime.AddDays(1) < v.WorkTimeE)) select v).ToList();
标签:01,启用,可用,DateTime,Device,时间段,某个,时间 From: https://www.cnblogs.com/bjuci/p/16776084.html