2024年3月9日发(作者:)

windows获取当前系统时间函数总结

windows获取当前系统时间函数总结

篇一:

c++获取inds时间的方法 介绍 我们在衡量一个函数运行时间,

或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,

定时执 行一个特定的操作,比如在多媒体中,比如在游戏中等,都

会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时

间,然后利用两者之差得出函数或者 算法的运行时间。编译器和操

作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相

同的,所以,如果我们想得到准确的结果,必须使用合适的时间函 数。

现在我就介绍inds下的几种常用时间函数。 1:

Sleep函数 使用:

sleep(1000),在inds和Linux下1000代表的含义并不相同,inds

下的表示1000毫秒,也就是1秒钟;Linux下表示1000秒,Linux

下使用毫秒级别的函数可以使用usleep。 原理:

sleep函数是使调用sleep函数的线程休眠,线程主动放弃时间

片。当经过指定的时间间隔后,再启动线程,继续执行代码。Sleep

函数并不能起到定时的作用,主要作用是延时。在一些多线程中可能

会看到sleep(0);其主要目的是让出时间片。 精度:

sleep函数的精度非常低,当系统越忙它精度也就越低,有时候

我们休眠1秒,可能3秒后才能继续执行。它的精度取决于线程自身

优先级、其他线程的优先级,以及线程的数量等因素。 2:

MFC下的timer事件 使用:

1.调用函数SetTimer设置定时间隔,如SetTimer(0,100,NULL)即

为设置100毫秒的时间间隔;

2.在应用程序中增加定时响应函数nTimer,并在该函数中添加响

应的处理语句,用来完成时间到时的操作。 原理:

同sleep函数一样。不同的是timer是一个定时器,可以指定回

调函数,默认为nTimer函数。 精度:

timer事件的精度范围在毫米级别,系统越忙其精度也就越差。 3:

C语言下的Time 使用:

time_t t;time( Time函数是获取当前时间。 原理:

time函数主要用于获取当前时间,比如我们做一个电子时钟程序,

就可以使用此函数,获取系统当前的时间。 精度:

秒级别 4:

CM对象中的CleDateTime,CleDateTimeSpan类 使用:

CleDateTime start_time = CleDateTime::GetCurrentTime;

CleDateTimeSpan end_time =

CleDateTime::GetCurrentTime-start_time;

hile(end_lSecnds 2) { // 处理延时或定时期间能处理

其他的消息 DSmething end_time =

CleDateTime::GetCurrentTime-start_time; } 原理:

以上代表延时2秒,而这两秒内我们可以循环调用DSmething,

从而实现在延时的时候我们也能够处理其他的函数,或者消息。

CleDateTime,CleDateTimeSpan是MFC中CTime,CTimeSpan在CM中

的应用,所以,上面的方法对于CTime,CTimeSpa同样有效。 精度:

秒级别 5:

C语言下的时钟周期clck 使用:

clck_t start = clck; Sleep(100); clck_t end = clck; duble

d = (duble)(start - end) / CLCKS_PER_SEC; 原理:

clck是获取计算机启动后的时间间隔。 精度:

ms级别,对于短时间内的定时或者延时可以达到ms级别,对于

时间比较长的定时或者延迟精度还是不够。在inds下CLCKS_PER_SEC

为1000。 6:

inds下的GetTickCunt 使用:

DRD start = GetTickCunt; Sleep(100); DRD end = GetTickCunt;

原理:

GetTickCunt是获取系统启动后的时间间隔。通过进入函数开始

定时,到退出函数结束定时,从而可以判断出函数的执行时间,这种

时间也并非是函数或者算法的真实执行时间,因为在函数和算法线程