字串時間到time_t 的轉換
在C 中將包含「hh:mm:ss」格式的時間的字串轉換為time_t 可以是透過多種方式實現。
一種方法是利用 C 11 的高級時間和日期操作功能
例如:
std::tm tm; std::istringstream ss("16:35:12"); ss >> std::get_time(&tm, "%H:%M:%S"); // or just %T in this case std::time_t time = std::mktime(&tm);
比較時間變數的最早值
要比較兩個包含時間的字串,您可以比較它們對應的time_t表示或使用字串比較技術。
使用time_t 值,您可以使用 std::less 直接比較它們。例如:
std::string curr_time = "18:35:21"; std::string user_time = "22:45:31"; std::istringstream ss_curr(curr_time); std::istringstream ss_user(user_time); std::tm tm_curr, tm_user; ss_curr >> std::get_time(&tm_curr, "%H:%M:%S"); ss_user >> std::get_time(&tm_user, "%H:%M:%S"); std::time_t time_curr = std::mktime(&tm_curr); std::time_t time_user = std::mktime(&tm_user); if (time_curr < time_user) { std::cout << curr_time << " is earlier than " << user_time << std::endl; } else { std::cout << user_time << " is earlier than " << curr_time << std::endl; }
或者,可以使用字串比較,假設兩個時間的格式相同:
if (curr_time < user_time) { std::cout << curr_time << " is earlier than " << user_time << std::endl; } else { std::cout << user_time << " is earlier than " << curr_time << std::endl; }
以上是如何確定 C 中兩個字串時間值之間的較早時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!