首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查当前时间是否在特定的时间范围内?

如何检查当前时间是否在特定的时间范围内?
EN

Stack Overflow用户
提问于 2015-06-28 13:40:54
回答 4查看 1K关注 0票数 0

我想创建一个触发器。我给出两个输入。A)开始时间b)结束时间。

我想持续检查当前时间是否在开始时间和结束时间之间。并在0(不在范围内)和1(在范围内)之间切换全局变量的值。

但我需要每秒钟检查一次。

我现在正在做的事情是

代码语言:javascript
运行
复制
while (true)
{
    now_hrs = Convert.ToInt32(DateTime.Now.Hour);
    now_min = Convert.ToInt32(DateTime.Now.Minute);

    if (now_hrs >= start_hrs && now_hrs <= end_hrs)
    {
        if (now_hrs == start_hrs && now_min < start_min)
        {

        }
        else if (now_hrs == end_hrs && now_min > end_min)
        {

        }
        else
        {
            alert_trigger = 1;
        }
    }
}

但我什么也没得到,程序就挂了。

是否有其他方法可以检查当前时间是否在该范围内

在开始时间和结束时间之间将alert_trigger的值更改为1,否则为0。

EN

回答 4

Stack Overflow用户

发布于 2015-06-28 13:52:10

我假设startend的类型是DateTime

代码语言:javascript
运行
复制
while(true)
{
    DateTime now = DateTime.Now;
    alert_trigger = (now > start && now < end) ? 1 : 0;
}

干杯

票数 1
EN

Stack Overflow用户

发布于 2015-06-28 13:51:17

使用TimeSpan而不是DateTime

代码语言:javascript
运行
复制
var start = new TimeSpan(7, 0, 0); // your start time
var end = new TimeSpan(15, 0, 0);   // your end time

while(true)
{
    var now = DateTime.Now.TimeOfDay;

    if (now <= end && now >= start)
    {
        alert_trigger = 1
    }
}   

此外,考虑另一种解决方案,但在while循环中进行主动等待。也许订阅一个TimerTick-event。

票数 0
EN

Stack Overflow用户

发布于 2015-06-28 13:52:13

DateTime.compare使用

代码语言:javascript
运行
复制
private void compareTime(DateTime start, DateTime end)
{
    DateTime cur = DateTime.Now;
    if(DateTime.compare(cur, start)>0 && DateTime.compare(cur, end)<0)
        return 1;
    else
        return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31096514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档