我无法确定系统运行的时间。我现在太累了,但无所事事。我使用GetTickCount()来获得毫秒数,但我必须将它们转换为人类可读的格式。我试过这样的事情,但结果很奇怪。
void GetUpTime(DWORD Tick) //GetTickCount() argument.
{
wchar_t temp[256] = {0};
ZeroMemory(tmpBuff, sizeof(tmpBuff));
wsprintfW(temp, L"%uh %um %us", Tick/60, Tick/60*60, Tick/60*60*60);
lstrcpyW(Time, tmpBuff);
}
我想这里,Tick / 60 =秒,Tick / 60 * 60 =分钟和Tick / 60 * 60 * 60 =小时。但是我需要这样的事情:1小时5分36秒而不是整个谈话。 问候。
答案 0 :(得分:5)
Tick/60*60
与(Tick/60)*60
的含义相同,显然不是您想要的。你的意思可能是Tick/(60*60)
。
如果你想要更具可读性的东西,你可以“剥离”每个单位:
DWORD seconds = Tick / 1000; /* Milliseconds -> seconds */
DWORD minutes = seconds / 60; /* Seconds -> minutes */
DWORD hours = minutes / 60; /* Minutes -> hours */
/* Adjust seconds and minutes to leave only the remainder. */
seconds %= 60;
minutes %= 60;
wsprintfW(temp, L"%uh %um %us", hours, minutes, seconds);