2011-12-21 3 views
3

time_t変数を午後10時に設定したい。たとえば、午後11時であれば、翌日の午後10時(23時間後)、または午後5時であれば午後10時(5時間)に設定されます。C:time_tを次の午後10時に設定する

私はこれを行うためのさまざまな方法(次の午後10時までの秒数を計算してその値を追加するなど)を考えることができますが、それらはすべてむしろハイキングのように感じられます。これを達成する最良の方法は何ですか?

答えて

7

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

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

tm->hour = 22; 

mktimeを使用してtime_tに戻って変換します。

+0

私はどのようにtime_tに変換しますか? – Zeno

+0

@Zeno私は編集しました。 – cnicutar

関連する問題