让系统正常运行

我无法确定系统运行的时间。 我现在太累了,但无所事事。 我使用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 =小时。 但是我需要这样的事情:1h 5m 36s不是整个对话。 问候。

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);