2012-03-06 53 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