【问题标题】:convert minutes::rep to hours::rep将分钟::rep 转换为小时::rep
【发布时间】:2016-10-06 14:39:28
【问题描述】:

我应该如何继续将std::chrono::minutes::rep 类型值转换为小时表示。

#include <iostream>
#include <chrono>

using namespace std;
using namespace std::chrono;

int main() {
    minutes::rep time = 4;
    std::cout << time;  // outputs as minutes, need in hours

    // duration cast doesn't seems to work here because it
    // needs minutes instead of minutes::rep probably

    return 0;
}

【问题讨论】:

标签: c++ linux date c++11 chrono


【解决方案1】:
minutes::rep time = 4;
std::cout << time;  // outputs as minutes, need in hours

因为time 只是一个(实现定义的)整数类型,它与minuteshours 无关,并且对底层时间表示一无所知。

你想留在duration领域:

minutes time{4};
auto as_hours = std::duration_cast<hours>(time);
std::cout << as_hours.count(); // prints 0

或者,可能:

auto as_hours_dbl = std::duration_cast<duration<double, hours::period>>(time);
std::cout << as_hours_dbl.count(); // prints 0.0666667

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2018-12-26
    • 2015-07-24
    • 2011-12-07
    • 2014-12-01
    • 2015-07-20
    相关资源
    最近更新 更多