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是获取系统启动后的时间间隔。通过进入函数开始
定时,到退出函数结束定时,从而可以判断出函数的执行时间,这种
时间也并非是函数或者算法的真实执行时间,因为在函数和算法线程


发布评论