C ++ - 仅比较时间

时间:2018-04-05 03:17:34

标签: c++

有没有办法只比较C ++中的时间?

例如,给定一个预定义时间数组(在字符串中,例如“04:00”,“07:00”,“13:00”)我希望能够将当前时间与时间范围进行比较在数组中给出以查看哪个适合。

我尝试了strptime,但我一直收到未定义的错误。我添加了time.hstdio.h

#include <stdio.h>
#include <ctime>
#include <time.h>

int main() {

    //GET CURRENT TIME
    time_t now = time(0);
    tm *ltm = localtime(&now);
    cout << "Time: "<< ltm->tm_hour << ":";
    cout << ltm->tm_min << ":";
    cout << ltm->tm_sec << endl;

    //TRYING TO CONVERT THE TIME FROM STRING TO PROCEED FOR FURTHER COMPARISON
    struct tm tm;
    std::string s("04:00");
    if (strptime(s.c_str(), "%H:%M", &tm)) { //error strptime is undefined
        int d = tm.tm_mday,
            m = tm.tm_mon + 1,
            y = tm.tm_year + 1900;
        std::cout << y << "-" << m << "-" << d << " "
                  << tm.tm_hour << ":" << tm.tm_min;
    }

    //ATTEMPT TO DO TIME COMPARISON HERE
}

我错过了任何图书馆吗?

有更简单/替代的方法吗?

请指导我。感谢

1 个答案:

答案 0 :(得分:1)

示例中的时间戳都具有相同的固定格式:两位数小时,冒号,两位数分钟。

这意味着他们完全可以通过operator<std::stringstd::strcmpstd::strncmpstd::memcmp等进行字典比对。< / p>