且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将GetTickCount()的输出转换为时间格式?

更新时间:2023-12-05 10:44:58

该值以毫秒为单位...



 DWORD ticks = GetTickCount(); 
DWORD毫秒=刻度% 1000 ;
ticks / = 1000 ;
DWORD seconds = ticks% 60 ;
ticks / = 60 ;
DWORD分钟=滴答% 60 ;
ticks / = 60 ;
DWORD小时=滴答; // 可能超过24小时。
printf( %d:%02d:%02d。%03d \ n,小时,分钟,秒,毫秒);





如果您不关心毫秒,MFC的CTimeSpan课程可能适合您。



 CTimeSpan span(ticks / 1000); 
printf(%d%02d:%02d:%02d \ n,span.GetDays(),span.GetHours(),span.GetMinutes(),span.GetSeconds());


Hi Friends,

I have stuck at one point. I get milliseconds by using GetTickCount() function. Now I want to convert it in date-time format like HH:MM:SS format.

Is MFC provide api to convert this directly, or I will use any other way? Please suggest me the solution.

DWORD dwTickCount = GetTickCount();
DWORD m_dwNextCommandTickCount = (DWORD)(dwDiff * 1000/dFrameRate + dwTickCount);



In above code I want to convert both dwTickCount and m_dwNextCommandTickCount in time format.

Thanks in advance

The value is in milliseconds so ...

DWORD ticks = GetTickCount();
DWORD milliseconds = ticks % 1000;
ticks /= 1000;
DWORD seconds = ticks % 60;
ticks /= 60;
DWORD minutes = ticks % 60;
ticks /= 60;
DWORD hours = ticks; // may exceed 24 hours.
printf("%d:%02d:%02d.%03d\n", hours, minutes, seconds, milliseconds);



If you don't care about milliseconds, MFC's CTimeSpan class may work for you.

CTimeSpan span(ticks/1000);
printf("%d %02d:%02d:%02d\n", span.GetDays(), span.GetHours(), span.GetMinutes(), span.GetSeconds());