我想将 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/

10-11 22:42
查看更多