C语言中如何计算时间差

C语言中如何计算时间差,第1张

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main()

{

unsigned char time1[] = { 10, 8, 31, 9, 26 }

unsigned char time2[] = { 10, 8, 31, 9, 50 }

struct tm t1 = {0}

struct tm t2 = {0}

time_t _t1

time_t _t2

double diff

t1.tm_year = time1[0] + 100

t1.tm_mon = time1[1]

t1.tm_mday = time1[2]

t1.tm_hour = time1[3]

t1.tm_min = time1[4]

t2.tm_year = time2[0] + 100

t2.tm_mon = time2[1]

t2.tm_mday = time2[2]

t2.tm_hour = time2[3]

t2.tm_min = time2[4]

_t1 = _mkgmtime( &t1 )

_t2 = _mkgmtime( &t2 )

diff = difftime(_t2, _t1 )

printf( "相差 %.0f 分钟\n", diff / 60 )

}

扩展资料:

C语言中有两个相关的函数用来计算时间差,分别是:

time_t time( time_t *t)   与 clock_t clock(void)

头文件: time.h

计算的时间单位分别为: s   , ms

time_t 和 clock_t 是函数库time.h 中定义的用来保存时间的数据结构

返回值:

1、time  : 返回从公元1970年1月1号的UTC时间从0时0分0秒算起到现在所经过的秒数。如果参数 t 非空指针的话,返回的时间会保存在 t 所指向的内存。

2、clock:返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。     1单元 = 1 ms。

所以我们可以根据具体情况需求,判断采用哪一个函数。

具体用法如下例子:

#include <time.h>

#include <stdio.h>

#include <stdlib.h>

int main()

{

time_t c_start, t_start, c_end, t_end

c_start = clock()    //!<单位为ms

t_start = time(NULL)  //!<单位为s

system("pause")

c_end   = clock()

t_end = time(NULL)

//!<difftime(time_t, time_t)返回两个time_t变量间的时间间隔,即时间差

printf("The pause used %f ms by clock()\n",difftime(c_end,c_start))

printf("The pause used %f s by time()\n",difftime(t_end,t_start))

system("pause")

return 0

}

因此,要计算某一函数块的占用时间时,只需要在执行该函数块之前和执行完该函数块之后调用同一个时间计算函数。再调用函数difftime()计算两者的差,即可得到耗费时间。

linux下c++的clock统计时间怎么不准

计时,也就是获取当前的时间,使用 gettimeofday(),精度 1 毫秒。x86_64 ...

C语言中如何计算时间差 : C语言中如何计算时间差 如何将两个包含“年月...2)关于sleep中的数,在Windows和Li...

linux下如何查卡cpu的频率 : clock -w 将时间修改保存到 BIOS 关机(系统的...chattr +c file1 允许...

请问C语言中clock()函数该怎么用? : 这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000...之类的是...

LINUX下C语言编程怎么打印日志 : LINUX下C语言编程怎么打印日志 linux编程C语言 ...time_t clock ap...

Linux 怎么修改系统和文件的创建时间和最后修改时间 : date-s05/06/2016修改年月日为2016年5月6日,date-s09:30:00设置系统...

for语句延时时间计算方法 : clock如果不够精确,linux下可以用gettimeofday,windows下用GetSysT...

linux 如何获取ntp服务器时间 : “Synchronize system clock before startingservice”,...

linux c clock函数持续时间一直为0: clock_t clock (void) 解释为This function returns the ...

0.5微秒的延迟相当于纳秒级的了,内核空间有提供纳秒级的延迟

#include <linux/delay.h>

ndelay(int n) 延时n纳秒

但是时间应该是不准的。

较为准确的延迟可以用select,但也只是us级的。

struct timeval tv

tv.tv_sec=0

tv.tv_usec=iUsec //微秒

select(0,NULL,NULL,NULL,&tv)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8760074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存