2015-12-22 39 views
1

下面是从另一个question这增加29.0分钟至60.0秒,并且显示结果以小时多的代码:定义分钟部

cout << 
    static_cast<quantity<hour_base_unit::unit_type>> 
    (quantity<time>{29.0 * minute_base_unit::unit_type()} + 60.0 * seconds) 
    << endl; 

什么是推荐的方法,以限定minutes因此上述表达式可以写成如:

cout << 
    static_cast<quantity<hour_base_unit::unit_type>> 
    (29.0 * minutes + 60.0 * seconds) 
    << endl; 
+0

http://www.boost.org/doc/libs/1_59_0/boost/units/systems/si/time.hpp似乎很重要 –

回答

2

如果可以的话,我会建议使用C++ 14的<chrono>设施这一点。他们人很好。 (我知道这在技术上不是他的问题的答案,但可能为他节省很多工作)。

#include <iostream> 
#include <chrono> 

int main() { 
    using namespace std::chrono; 
    std::cout << duration_cast<hours>(29min + 60s).count() << std::endl; 
} 
+0

嗨马歇尔! 'chrono'绝对是非常好的。不过,我只是用“小时,分钟,秒”作为熟悉的单位。我想为其他种类的单位做类似于上面的事情(增加英尺+米,以英寸为单位查看结果等)。 (PS:我很享受2014 Grill的Committe演讲!) – dharmatech