• 欢迎光临~

设置一天内某个时间段可用

开发技术 开发技术 2022-10-10 次浏览

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();

 

程序员灯塔
转载请注明原文链接:设置一天内某个时间段可用
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com