Conversion de la chaîne Time en time_t
La conversion d'une chaîne contenant l'heure au format "hh:mm:ss" en time_t en C peut être obtenu de diverses manières.
Une méthode consiste à exploiter les capacités avancées de manipulation de l'heure et de la date de C 11 avec
Pour exemple :
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);
Comparaison des variables de temps pour la valeur la plus ancienne
Pour comparer deux chaînes contenant l'heure, vous pouvez soit comparer leurs représentations time_t correspondantes, soit utiliser des techniques de comparaison de chaînes.
En utilisant les valeurs time_t, vous pouvez les comparer directement en utilisant std::less. Par exemple :
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; }
Vous pouvez également utiliser une comparaison de chaînes, en supposant que les deux heures sont au même format :
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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!