gpt4 book ai didi

c# - 在 C# 中比较 DateTimes 产生意想不到的结果

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:30 25 4
gpt4 key购买 nike

我正在尝试比较运行时变量是否在现在和一分钟后。这是代码:

if (RunTime.ToUniversalTime() >= now.ToUniversalTime() && 
RunTime.ToUniversalTime() < now.AddMinutes(1).ToUniversalTime())
{
//Do Stuff
}

然而,这比我预期的要早一分钟评估为真。例如,如果我的运行时间为 9:30,那么从 9:29 到 9:30 的计算结果为真,而不是 9:30 - 9:31。我在这里错过了什么?我对代码的理解是,当运行时间大于或等于现在且小于现在加一分钟时,它的计算结果为真。

最佳答案

RunTime.ToUniversalTime() >= now.ToUniversalTime() && 
RunTime.ToUniversalTime() < now.AddMinutes(1).ToUniversalTime()

让我们重写这个条件:

now.ToUniversalTime() <= RunTime.ToUniversalTime() &&
now.ToUniversalTime() > RunTime.AddMinutes(-1).ToUniversalTime()

所以当 RunTime 是 9:30 时,条件应该从 RunTime.AddMinutes(-1) (9:29) 开始为真 RunTime (9:30) 包括在内。就像您在帖子中所说的那样。

如果从 9:30 到 9:31 那个条件是真的,那么你应该使用不同的条件:

now.ToUniversalTime() >= RunTime.ToUniversalTime() &&
now.ToUniversalTime() < RunTime.AddMinutes(1).ToUniversalTime()

关于c# - 在 C# 中比较 DateTimes 产生意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36776031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com