Я не знаю, какую библиотеку вы используете, но в C ++ 11 добавлен класс std::chrono::duration
, который, кажется, может делать то, что вы хотите:
#include <chrono>
#include <iostream>
int main()
{
{
std::chrono::minutes minutes(1);
std::chrono::seconds seconds;
seconds = minutes;
std::cout << "1 minute is " << seconds.count() << std::endl;
}
{
std::chrono::seconds seconds(1);
using fMinutes = std::chrono::duration<float, std::chrono::minutes::period>;
fMinutes minutes = seconds;
std::cout << "1 second is " << minutes.count() << std::endl;
}
return 0;
}
Обратите внимание, что по умолчанию std::chrono::minutes
использует счетчик целых чисел и, таким образом, сообщает, что 1 секунда равна 0 минутам. Вот почему я определяю свои собственные float-минуты.
В любом случае, вышеприведенная программа выдает следующий вывод:
1 minute is 60
1 second is 0.0166667