2012-03-06 67 views
1

我想用previous_saved_time減去current_time,並檢查它是否大於wait_time。等待時間應該是一個整數。有人能給我一個簡單的例子嗎?換句話說:C中的時間減法

if ((current_time - previously_saved_time) > wait_time) { 
    do something; 
} 
+0

交一些示例數據 – Teja 2012-03-06 04:40:38

+0

[男人時間](http://linux.die.net/man/2/time)與[人difftime](HTTP:// Linux的.die.net/man/3/difftime)可能是一個合理的起點。 – 2012-03-06 04:41:57

回答

4

你有什麼是正是你需要的,比用一些實際的代碼替換do something等。

例如,該程序將等待三秒時:

#include <time.h> 

int main(void) { 
    time_t base = time (0); 
    time_t now = base; 
    while (now - base < 3) 
     now = time (0); 
    return 0; 
} 

它只是循環在while聲明,直至基準時間與當前時間之間的區別是三個或更多(幾乎肯定要更好的方法等待N秒,這只是爲了說明計算)。

+0

謝謝。正是我在找什麼。 – 2012-03-06 04:45:33

+0

請注意,C標準認爲您應該使用'difftime()'來計算兩個'time_t'值之間的差異,例如'time()'返回的值。 POSIX採用更簡單的生活觀(至少w.r.t'time_t';我們不討論所有的亞秒時間機制)和直接減法工作。 – 2012-03-06 04:55:55

+0

我使用了這些計算,因爲它不清楚_were_'time_t'類型的值。如果它們是'difftime',那麼可能是一種方法,因爲'time_t'的編碼實際上並未被標準強制執行。 – paxdiablo 2012-03-06 05:02:35