2012-03-06 20 views
1

current_timeをprevious_saved_timeで減算し、それがwait_timeより大きいかどうかを確認したいと思います。待ち時間はintでなければなりません。誰かが私に簡単な例を教えてもらえますか?言い換えれば、あなたが持っている何Cでの時間の減算

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

ポストいくつかのサンプルデータ – Teja

+0

[男の時間](http://linux.die.net/man/2/time)[男difftime](HTTPで:// linuxの.die.net/man/3/difftime)は合理的な出発点かもしれません。 –

答えて

4

は、いくつかの実際のコードでdo somethingを交換する以外、何が必要正確です。例えば

は、このプログラムは、3秒待機:

#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文でループを3個以上の(へのより良い方法は、ほぼ確実にありますN秒待つ、これは単に計算を説明するためのものです)。

+0

ありがとうございます。まさに私が探していたもの。 –

+0

C標準では、 'time()'によって返される値のような2つの 'time_t'値の差を計算するために' difftime() 'を使うべきだと考えていることに注意してください。 POSIXは、より簡単な人生観を持っています(少なくともw.r.t 'time_t';すべてのサブ秒タイミングメカニズムについては論じません)と直接減算が働きます。 –

+0

値がtime_t型であることが明らかでないため、これらの計算を使用しました。それらが 'difftime'ならば、' time_t'のエンコーディングが実際に標準によって義務づけられていないので、おそらく行く方法です。 – paxdiablo