我想在晚上10点将time_t变量设置为下一个日期/时间.因此,例如,如果是晚上11点,则将time_t设置为第二天晚上10点(23小时后),或者如果是下午5点,则将其设置为晚上10点(5小时内).
我可以想到多种方法来做到这一点(例如计算下一个晚上10点之前的秒数并添加该值),但他们都觉得这是一种hackish方法.实现这一目标的最佳方法是什么?
例如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.