如何将int转换为时间毫秒

问题描述 投票:-2回答:2

我有一个毫秒类型的变量,我想将其设置为等于一个方程。到目前为止,我已经完成了这些工作。它可以编译并运行,但是当它遇到这一行时,它将停止在下面输入if语句。

time = duration<int>(750-(lvl*50));

要注意的另一件事是,我确实有一个if语句,这也可能是我正在比较不同数据类型的问题的一部分。这是if语句:

if(time_since_last >= time) {

自最后一个变量以来的时间是不同的2 high_resolution_clock :: now()的时间差

c++ chrono
2个回答
0
投票

您不应该在比较中使用间隔。请改用绝对值。例如:

next_time = curr_time + duration<int>( ... etc ... );
if( time > next_time ) {
    // do something
}

0
投票

您可以尝试这样的操作。要将整数值转换为毫秒,请使用std::chrono::milliseconds(value);

auto old_time = std::chrono::high_resolution_clock::now();
this_thread::sleep_for(chrono::milliseconds(500));
auto new_time = std::chrono::high_resolution_clock::now();
auto time_since_last = std::chrono::duration_cast<chrono::milliseconds>(new_time - old_time);   
cout << time_since_last.count();

int value = 1000;
auto time = std::chrono::milliseconds(value);
cout << "   " <<time.count();

if (time_since_last >= time) {
    /* do something */
}
© www.soinside.com 2019 - 2024. All rights reserved.