2014-03-31 67 views
0

正如標題所說,我試圖使用運算符重載添加兩個不同的時間值。例如:C++使用運算符重載添加兩個時間值

r1=10:00  
r2=15:50   
r3=18:20 

r4=r1+r2=25:50 
r5=r1+r3=28:20   
r6=r2+r3=34:10 

我已經成功地做到這一點與一類名爲「時鐘」的這一部分:

Clock Clock::operator+(int m){ 
int sum; 
sum=hour+m+(minu+m)/60; 
sum=(minu+m)%60; 
return sum; 
} 

但是,我要的是讓時間24小時格式。 因此,而不是:

r4=r1+r2= 25:50  
r5=r1+r3= 28:20  
r6=r2+r3= 34:10 

這將是:

r4=r1+r2= 01:50  
r5=r1+r3= 04:20  
r6=r2+r3= 10:10 

有人能告訴我一個建議來解決這個問題?

+0

如果你的時間是'24:00'或更大,那麼減去24小時 –

回答

1

您是否知道std::chrono?因爲你可能會重新發明輪子。

無論如何,你添加到一個時間是一個時間差異。如果你減去兩次,你會得到一個時間差。一次不能添加5個,但可以添加5分鐘或5秒。

也就是說,如果你只有非日期部分的時間,你確實可以每24小時換一次。你已經知道如何每60分鐘換一次;工作時間相同。 (如果你有一個白天櫃檯,每當小時被包裹時,你必須加一個 - 再次就像幾分鐘時間溢出一樣)。