簡體   English   中英

在 C 中將 time_t 設置為下一個晚上 10 點?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM