首页 > 解决方案 > 将持续时间值设为双倍

问题描述

假设,我有以下持续时间值:

auto duration=12h+15min+99s+99ms;

我想知道那是多少小时(作为双值)。

当我这样做时auto hours=std::chrono::duration_cast<std::chrono::hours>(duration),我得到hours.count()int。将整个持续时间的值表示为双倍的正确方法是什么?

标签: c++durationchrono

解决方案


using namespace std::chrono;

// Create a double-based hours duration unit
using dhours = duration<double, hours::period>;

// Assign your integral-based duration to it
dhours h = 12h+15min+99s+99ms;

// Get the value
cout << h.count();

或者,只需将基于积分的持续时间除以一个 double-based hours

cout << (12h+15min+99s+99ms)/1.0h << '\n';

推荐阅读