检查是否是新的一天



我不太确定如何以编程方式描述这个问题,但我有一台服务器,我不想运行单独的线程/循环来检查新的一天,但基本上,每当用户连接到服务器时,它都会运行一次检查,以查看是否是新的一日,即当地时间晚上11:59之后。如果是这样,服务器应该执行一次操作,但只能执行一次,直到新的一天再次开始。我不知道该怎么做。我的第一个问题是,如果任何一天都超过了11:59,我该如何检查。我的第二个问题是,我如何确保我正在进行的任何手术在第二天之前只进行一次?

我想保持一个可变的外观bool并在上操作

if(time>11:59){
if(!newday){
//do single operation 
newday = true;
}
}

但这不会起作用,因为11:59之后的每一分钟都将大于,并且newday永远不会重置为false。。

我不知道我是在想一个非常简单的概念,还是只是不明白自己在做什么。我是否应该使用特定的时间来检查新的一天是否已经开始?我应该24小时跑步而不是12小时跑步吗?

您可能只需检查24小时格式的本地时间,并从24小时中减去当前时间,例如24-16.12,将值转换为毫秒,然后在linux(unistd.h(上使用sleep((函数或在windows(windows.h(上用sleep(((函数,并将减去后的值传递给sleep(或(/sleep((函数的参数。然后你知道这是新的一天,现在就做你想做的事,所以下一行做一个无限的while循环(别担心,因为sleep((在下一行没有风险(,但在第一行中放入sleep(86160000(或sleep(86.160000(,因为86160000毫秒=23小时58分钟(精确地说是1天(,在接下来的几行中,当这是新一天时,你想做什么就做什么。如果你遇到任何错误,请在评论中发布

您需要一个新线程,它不会占用大量资源。使用24小时的基础来记录,但您可以显示12小时的基础。

最新更新