GetTickCount函数时间精确到毫秒多少毫秒

DWORD&GetTickCount(void);&&&&
For Release configurations, this function returns the number of milliseconds since the device booted, excluding any time that the system was suspended.&GetTickCount&starts at 0 on boot and then counts up from there.
在Release版本中,该函数从0开始计时,返回自设备启动后的毫秒数(不含系统暂停时间)。
For Debug configurations, 180 seconds is subtracted from the the number of milliseconds since the device booted. This allows code that uses&GetTickCount&to be easily tested for correct overflow handling.
在Debug版本中,设备启动后便从计时器中减去180秒。这样方便测试使用该函数的代码的正确溢出处理。
Return Values
The number of milliseconds indicates success.
返回值:如正确,返回毫秒数。
Header:&Winbase.h.Link Library:&Coredll.lib.
用来计算某个操作所使用的时间:&&&
&&Start:=GetTickC&&&&&&...//执行耗时的操作&&&&&&Stop:=GetTickC&&&&&&TimeUsed:=(Stop-Start)/1000;&&&&&//使用了xxx秒
用来定时:&&
void&main()&{&&DWORD&dwL&&DWORD&dwC&&DWORD&dwInterval&=&1000;&&dwLast&=&GetTickCount();&&int&i&=&0;&&while(true)&&&&&{&&&&&&&&dwCurrent&=&GetTickCount();&&&&&&&&if(&dwCurrent&-&dwLast&&&dwInterval&)&&&&&&&&continue;&&&&&&&&&//your&code&to&be&executed&when&interval&is&elapsed&&&&&&&&printf("dwLast,dwCurrent,diff:%d,%d,%d&",dwLast,dwCurrent,dwCurrent-dwLast);&&&&&&&&&//your&code&to&determine&when&to&break&&&&&&&&if(&i&&&10&)&break;&&&&&&&&i++;&&&&&&&&dwLast&=&dwC&&&&&&&&printf("Time&is&up!");&&&&&&&&break;&&&&&}&&&getchar();&&&&&&return;}&
对于一般的实时控制,使用GetTickCount()函数就可以满足精度要求,但要进一步提高计时精度,就要采用QueryPerformanceFrequency()函数和QueryPerformanceCounter()函数。这两个函数是VC提供的仅供Windows & 9X使用的高精度时间函数,并要求计算机从硬件上支持高精度计时器。
以上引用:
阅读(...) 评论()网站已改版,请使用新地址访问:
DelayTime delphi下的延时函数,使用gettickcount精确到1毫秒 VCL 238万源代码下载-
&文件名称: DelayTime
& & & & &&]
&&所属分类:
&&开发工具: Delphi
&&文件大小: 8 KB
&&上传时间:
&&下载次数: 4
&&提 供 者:
&详细说明:delphi下的延时函数,使用gettickcount精确到1毫秒-delay time in delphi, User gettick count for 1ms
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&DelayTime&&.........\Desktop_1.ini&&.........\Project1.cfg&&.........\Project1.dof&&.........\Project1.dpr&&.........\Project1.res&&.........\Unit1.dcu&&.........\Unit1.dfm&&.........\Unit1.pas&&.........\Unit1.~dfm&&.........\Unit1.~pas&&.........\Unit2.dcu&&.........\Unit2.pas&&.........\Unit2.~pas
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - play the sound from the wav file included in the file dynamic libary language with Delphi
&[] - Delphi 版的 JSON 控件。
可以把 xml 转换为 JSON 。
&[] - DeCAL的DELPHI接口。下载包中封装了DeCAL的常用接口,另外还是使用说明。非常好用
&[] - 视频录入软件
根据已有的代码进行修改网站已改版,请使用新地址访问:
GetTickCount 精确定位Windows里的时间,不仅仅是 到毫秒级 可能对于精度高的编程才用到 Develop 277万源代码下载-
网站已改版,请使用新地址访问:
&文件名称: GetTickCount
& & & & &&]
&&所属分类:
&&开发工具: Visual C++
&&文件大小: 446 KB
&&上传时间:
&&下载次数: 56
&&提 供 者:
&详细说明:精确定位Windows里的时间,不仅仅是定位到毫秒级的时间,可能对于精度高的编程才用到。-Precise positioning Windows in time, not just targeted to millisecond time, may have high accuracy using only programming.
文件列表(日期:~)(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&GetTickCount&&............\Debug&&............\&&............\GetTickCount.dsp&&............\GetTickCount.dsw&&............\GetTickCount.ncb&&............\GetTickCount.opt&&............\GetTickCount.plg&&............\
&相关搜索:
&输入关键字,在本站277万海量源码库中尽情搜索:
&[] - 图形获取处理分析 图形获取处理分析
&[] - 坐标系编程学习的好例子,对坐标系编程初学都有很大的帮助
&[] - gettickcount无法计算16ms以下的时间,该段代码可以进行毫秒级的精确计时
&[] - 基于 CPU 的精确计时器,时钟频率越高,计时越准,用于系统程序运行时间的测试。
&[] - 从串口读取数据,有两种方法,1、每接收一个EV_RXCHAR,就用ReadFile读一次,这样我觉得太恐怖了。2、接收到一个EV_RXCHAR后,等一定数据量的CPU周期(gettickcount),再一次性读取缓冲区里的数据。这样做,一般情况下不会有问题,但是,如果数据很多,过了“一定数据量的CP
&[] - 用VC++编程,比较三种定时器――SetTimer、timeSetEvent、、QueryPerformanceCounter、gettickcount的在精度上的差别
&[] - c++的settimer时间精度为1ms,而用文件里面的api可以定时到精度为1us。
&[] - vc 获取时间差 精确度达到毫秒级 settimer不精确
&[] - 写的C++,可以精确到毫秒的计时器,写好的源文件,可以自己添加上去就好了
相关函数/类:
GetTickCount Sleep1.使用CTime类(获取系统当前时间,精确到秒)
//获取系统时间
tm=CTime::GetCurrentTime();//获取系统日期
str=tm.Format(&现在时间是%Y年%m月%d日 %X&);
MessageBox(str,NULL,MB_OK);
a,从CTimet中提取年月日时分秒&
 CTime t = CTime::GetCurrentTime();&
  int d=t.GetDay(); //获得几号
  int y=t.GetYear(); //获取年份
  int m=t.GetMonth(); //获取当前月份
  int h=t.GetHour(); //获取当前为几时
  int mm=t.GetMinute(); //获取分钟
  int s=t.GetSecond(); //获取秒
  int w=t.GetDayOfWeek(); //获取星期几,注意1为星期天,7为星期六
b,计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:
  CTime t1( , 22, 15, 0 );
&&&&& CTime t = CTime::GetCurrentTime();
&&&&& CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔
  int iDay=span.GetDays(); //获取这段时间间隔共有多少天
  int iHour=span.GetTotalHours(); //获取总共有多少小时
  int iMin=span.GetTotalMinutes();//获取总共有多少分钟
  int iSec=span.GetTotalSeconds();//获取总共有多少秒
c,获得当前日期和时间,并可以转化为CString
  CTime tm=CTime::GetCurrentTime(); CString str=tm.Format(&%Y-%m-%d&);//显示年月日
2.使用GetLocalTime:Windows API 函数,获取当地的当前系统日期和时间 (精确到毫秒)
  此函数会把获取的系统时间信息存储到SYSTEMTIME结构体里边
  typedef struct _SYSTEMTIME
  WORD wY//年
  WORD wM//月
  WORD wDayOfW//星期:0为星期日,1为星期一,2为星期二……
  WORD wD//日
  WORD wH//时
  WORD wM//分
  WORD wS//秒
  WORD wM//毫秒
  }SYSTEMTIME,*PSYSTEMTIME;
SYSTEMTIME
CString strDate,strT
GetLocalTime(&st);
strDate.Format(&%4d-%2d-%2d&,st.wYear,st.wMonth,st.wDay);
strTime.Format(&%2d:%2d:%2d&,st.wHour,st.wMinute,st.wSecond) ;
AfxMessageBox(strDate);
AfxMessageBox(strTime);
3.使用GetTickCount:从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。(精确到毫秒)
//获取程序运行时间
long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)
Sleep(500);
long t2=GetTickCount();();//程序段结束后取得系统运行时间(ms)
str.Format(&time:%dms&,t2-t1);//前后之差即 程序运行时间
AfxMessageBox(str);
//获取系统运行时间
long t=GetTickCount();
CString str,str1;
str1.Format(&系统已运行 %d时&,t/3600000);
t%=3600000;
str1.Format(&%d分&,t/60000);
str+=str1;
str1.Format(&%d秒&,t/1000);
str+=str1;
AfxMessageBox(str);
4.使用time_t time( time_t * timer )&:&& 仅使用C标准库(精确到秒)
得到从标准计时点(一般是日午夜)到当前时间的秒数&&
  计算时间差:double difftime( time_t timer1, time_t timer0)
&&&&&& struct tm *localtime(const time_t *timer);& 取得当地时间,localtime获取的结果由结构tm返回&&
返回的字符串可以依下列的格式而定:&&
%a 星期几的缩写。Eg:Tue&&
%A 星期几的全名。 Eg: Tuesday&&
%b 月份名称的缩写。&&
%B 月份名称的全名。&&
%c 本地端日期时间较佳表示字符串。&&
%d 用数字表示本月的第几天 (范围为 00 至 31)。日期&&
%H 用 24 小时制数字表示小时数 (范围为 00 至 23)。&&
%I 用 12 小时制数字表示小时数 (范围为 01 至 12)。&&
%j 以数字表示当年度的第几天 (范围为 001 至 366)。&&
%m 月份的数字 (范围由 1 至 12)。&&
%M 分钟。&&
%p 以 ''AM'' 或 ''PM'' 表示本地端时间。&&
%S 秒数。&&
%U 数字表示为本年度的第几周,第一个星期由第一个周日开始。&&
%W 数字表示为本年度的第几周,第一个星期由第一个周一开始。&&
%w 用数字表示本周的第几天 ( 0 为周日)。&&
%x 不含时间的日期表示法。&&
%X 不含日期的时间表示法。 Eg: 15:26:30&&
%y 二位数字表示年份 (范围由 00 至 99)。&&
%Y 完整的年份数字表示,即四位数。 Eg:2008&&
%Z(%z) 时区或名称缩写。Eg:中国标准时间&&
%% % 字符。&
5.要获取高精度时间,可以使用
&&& BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)获取系统的计数器的频率
&&& BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)获取计数器的值
&&& 然后用两次计数器的差除以Frequency就得到时间。
6.还有David的文章中提到的方法:
&&& Multimedia Timer Functions
&&& The following functions are used with multimedia timers.
&&& timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime
&&& timeGetTime/timeKillEvent/TimeProc/timeSetEvent 精度很高&
GetTickCount()函数,说是毫秒记数,是真的吗,还是精确到55毫秒?
GetTickCount()和GetCurrentTime()都只精确到55ms(1个tick就是55ms)。如果要精确到毫秒,应该使用timeGetTime函数或QueryPerformanceCounter函数。具体例子可以参考QA001022 &VC++中使用高精度定时器&、QA001813 &如何在Windows实现准确的定时&和QA004842 &timeGetTime函数延时不准&。
vc++怎样获取系统时间,返回值是什么类型的变量呢?&
GetSystemTime返回的是格林威志标准时间&
VOID GetSystemTime(&
LPSYSTEMTIME lpSystemTime // address of system time structure&
函数就可以获得了,其中LPSYSTEMTIME 是个结构体&
含:年,月,日,周几,小时,分,秒,毫秒。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28336次
排名:千里之外
转载:93篇
(2)(5)(8)(18)(1)(8)(5)(34)(13)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 时间戳精确到毫秒 的文章

 

随机推荐