2015-12-22 42 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