Penukaran Masa Rentetan kepada time_t
Menukar rentetan yang mengandungi masa dalam format "hh:mm:ss" kepada time_t dalam C boleh dicapai dalam pelbagai cara.
Satu kaedah ialah memanfaatkan manipulasi masa dan tarikh lanjutan C 11 keupayaan dengan
Untuk contoh:
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);
Membandingkan Pembolehubah Masa untuk Nilai Terawal
Untuk membandingkan dua rentetan yang mengandungi masa, anda boleh sama ada membandingkan perwakilan time_t yang sepadan atau menggunakan teknik perbandingan rentetan.
Menggunakan nilai time_t, anda boleh membandingkannya terus menggunakan std::less. Contohnya:
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; }
Sebagai alternatif, perbandingan rentetan boleh digunakan, dengan mengandaikan kedua-dua masa adalah dalam format yang sama:
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; }
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Masa Terdahulu Antara Dua Nilai Masa Rentetan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!