4

time_t 変数を次の日時の午後 10 時に設定したいと考えています。たとえば、午後 11 時だった場合は、time_t を翌日の午後 10 時 (23 時間後) に設定し、午後 5 時だった場合は、午後 10 時 (5 時間後) に設定します。

これを行う方法はいくつか考えられます (次の午後 10 時までの秒数を計算し、その値を加算するなど) が、いずれもかなりハックなアプローチのように感じます。これを達成するための最良の方法は何ですか?

4

1 に答える 1

7

たとえばstruct tm、を使用して、に変換します。localtime午後10時を過ぎる場合は、1日追加します。時間を午後 10 時に設定します。

struct tm *tm;
tm = localtime(t);
if (tm->tm_hour >= 22)
    tm->tm_mday++;

tm->hour = 22;

time_tを使用するように変換しmktimeます。

于 2011-12-21T15:37:35.417 に答える