2009-11-09 114 views
0

在我的編程類,我們有常量指針/結構

struct Time { 
    int hours, min, sec; 
} 

我們要創建一個方法來計算兩個時間之間的區別:

Time *timeDiff(const Time *t1, const Time *t2)

我想我可以創建時間差通過在幾秒鐘內獲得所有內容,然後減去兩個值,但它看起來像做額外的工作,如

long hour1 = t1->hours; 
long min1 = t1->min; 
long sec1 = t1->sec; 

然後使用這些值以秒爲單位獲得時間,第二次做類似的事情,然後減去。有什麼想法嗎?謝謝!

+0

C或C++? – GManNickG

+0

您描述的方式實際上是一種非常合理的方式。電腦是這樣愚蠢的。 我假設這兩個時間值將始終在同一天內,而不擔心兩個時間值可能跨越一天以上。 t1有可能比t2更早一些,反之亦然?要記住的事情。 – Jeff

回答

3

您描述的方式聽起來完全正確。我可能會做這樣的事情

int sec = t1->sec + 60*(t1->min + 60*t1->hours); 

進行類似的T2,然後減去從另一個和向下突破的結果到分鐘和小時。

+0

同意這是最一般的方式 - 並且可以輕鬆擴展以包含日子。創建兩個函數 - 一個將struct Time轉換爲秒,另一個做相反的操作。 – Dipstick