C语言中时间的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中时间的问题相关的知识,希望对你有一定的参考价值。

想找个可以计算出时间经过多少的C语言含数
比如 时间一:2008-03-13 时间二:2010-06-06
然后可以算出这两个时间的差是多少天
请问C语言中有没有这样的含数来直接用 有的话是什么?
如果没有的话 自己编写怎么样才能达到?

用 difftime(t2,t1) 计算时间差
time_t t1,t2;

先要用2008-03-13 和 2010-06-06 分别建两个time_t,再调用difftime(t2,t1)
得到的是秒
换算天 -- 一天是 86400秒,除一除就有了

构时间:
struct tm * target_time;
target_time->tm_year = 2008 - 1900;
target_time->tm_mon= 3 - 1; // month - 1
target_time->tm_mday = 15 ; // day
target_time->tm_hour = 0 ; // hour
target_time->tm_min = 0 ;
target_time->tm_sec = 0 ;
t1 = mktime (target_time);

target_time->tm_year = 2010 - 1900;
target_time->tm_mon= 6 - 1; // month - 1
target_time->tm_mday = 6 ; // day
target_time->tm_hour = 0 ; // hour
target_time->tm_min = 0 ;
target_time->tm_sec = 0 ;
t2 = mktime (target_time);

计算时间差:
long double dif,tian;
dif = difftime (t2,t1);
tian = dif / 86400.0;

别忘了头文件:
#include <time.h>
参考技术A 好像没有这样的函数。自己写吧,无非就是判断最后相加,判断一下闰年和非闰年,先算2008-3-13到2010-3-13天数,每年365天,如果有闰年366天,然后再算2010-3-13到6-6号。不过这个算法笨了点呵呵。

以上是关于C语言中时间的问题的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中如何获取当前日期?

C语言不定长参数的问题

C语言问题!

在c语言中如何获取当前日期?

C语言问题。

C语言计算时间