我想将 time_t 变量设置为晚上 10 点的下一个日期/时间。例如,如果现在是晚上 11 点,它会将 time_t 设置为第二天的晚上 10 点(23 小时后),或者如果是下午 5 点,它将设置为晚上 10 点(5 小时后)。
我可以想到很多方法来做到这一点(例如计算到下一个晚上 10 点的秒数并添加该值),但它们都感觉像是一种相当黑客的方法。实现这一目标的最佳方法是什么?
最佳答案
将其转换为 struct tm
,例如使用 localtime
。如果已超过晚上 10 点,则加一天。将时间设置为晚上 10 点。
struct tm *tm;
tm = localtime(t);
if (tm->tm_hour >= 22)
tm->tm_mday++;
tm->hour = 22;
使用
time_t
转换回 mktime
。关于c - 在 C 中将 time_t 设置为下一个晚上 10 点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8592327/