gpt4 book ai didi

D 中的时间比较

转载 作者:行者123 更新时间:2023-12-04 17:26:20 24 4
gpt4 key购买 nike

我正在尝试在 D 中构建一个番茄钟计时器应用程序。我曾经使用 ruby​​,我想做基本的时间比较。

我尝试使用类似的东西

auto startTime = Clock.currTime();

然后通过抓取当前时间进行比较:
do{

// bla bla stuff
auto nowTime = Clock.currTime();
}while(nowTime <= (startTime + dur!"minute"(25));

但是,随之而来的是缺少方法和类型错误。有任何想法吗?

最佳答案

除了CyberShadow's answer这确实告诉您如何修复您的代码,我会指出这种特殊方法不是计时器的最佳方法。除了条件变量很可能更有意义(取决于您的实际操作)这一事实之外,Clock.currTime是要使用的错误功能。
Clock.currTime使用实时时钟返回时间,而使用单调时钟通常会更准确。对于单调时钟以外的时钟,时间可能会受到时钟变化的影响(例如,系统时钟被 NTP 守护程序调整了几分钟)。然而,单调时钟总是以相同的速率向前移动,即使系统时钟被调整。因此,它对于获取时间不是很有用,但它非常适合计时。为此,您需要做更多这样的事情:

auto endTime = Clock.currSystemTick + to!TickDuration(dur!"minutes"(25));
do
{
//bla bla stuff
} while(Clock.currSystemTick < endTime);

所以,你最终要处理 core.time.TickDuration而不是 std.datetime.SysTime .只要您不需要一天中的实际时间并且只是将其用于计时目的,那么这种方法就更好了。

关于D 中的时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8622347/

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