字符串时间到 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中文网其他相关文章!