让系统正常运行

Nik*_*ika 0 c c++ windows

我无法确定系统运行的时间.我现在太累了,但无所事事.我使用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);
}
Run Code Online (Sandbox Code Playgroud)

正如我猜这里,Tick/60 =秒,Tick/60*60 =分钟和Tick/60*60*60 =小时.但是我需要这样的事情:1小时5分36秒而不是整个谈话.问候.

cdh*_*wie 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);
Run Code Online (Sandbox Code Playgroud)