文字列時刻から time_t への変換
「hh:mm:ss」形式の時刻を含む文字列を C で time_t に変換するには、次のようにします。
1 つの方法は、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);
最も早い値の時間変数の比較
時間を含む 2 つの文字列を比較するには、次のようにします。対応する 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 で 2 つの文字列時刻値の間の早い時刻を判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。