0

システムが稼働している時間を特定できません。今のところ疲れていますが、何もすることがありません。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。よろしく。

4

1 に答える 1

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);
于 2013-01-02T23:16:32.697 に答える