C:将time_t设置为下午10点

Zen*_*eno 4 c time time-t

我想在晚上10点将time_t变量设置为下一个日期/时间.因此,例如,如果是晚上11点,则将time_t设置为第二天晚上10点(23小时后),或者如果是下午5点,则将其设置为晚上10点(5小时内).

我可以想到多种方法来做到这一点(例如计算下一个晚上10点之前的秒数并添加该值),但他们都觉得这是一种hackish方法.实现这一目标的最佳方法是什么?

cni*_*tar 7

例如struct tm,使用它将其转换为a localtime.如果是晚上10点,请添加一天.设置小时到晚上10点.

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

tm->hour = 22;
Run Code Online (Sandbox Code Playgroud)

转换回time_t使用mktime.