Heim >Backend-Entwicklung >C++ >Wie bestimme ich die frühere Zeit zwischen zwei String-Zeitwerten in C?
Konvertierung von String Time in time_t
Das Konvertieren eines Strings, der Zeit im Format „hh:mm:ss“ enthält, in time_t in C kann sein Dies kann auf verschiedene Weise erreicht werden.
Eine Methode besteht darin, die erweiterten Zeit- und Datumsmanipulationsfunktionen von C 11 zu nutzen
Für Beispiel:
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);
Vergleichen von Zeitvariablen für den frühesten Wert
Um zwei Zeichenfolgen mit Zeit zu vergleichen, können Sie entweder ihre entsprechenden time_t-Darstellungen vergleichen oder Zeichenfolgenvergleichstechniken verwenden.
Anhand von time_t-Werten können Sie diese direkt mit std::less vergleichen. Zum Beispiel:
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; }
Alternativ kann ein String-Vergleich verwendet werden, vorausgesetzt, beide Zeiten haben das gleiche 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; }
Das obige ist der detaillierte Inhalt vonWie bestimme ich die frühere Zeit zwischen zwei String-Zeitwerten in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!