[英]Set time_t to next 10pm in C?
我想將 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;
使用mktime
轉換回time_t
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.