c ++过去几个小时的时间

时间:2017-08-03 09:14:38

标签: c++ time

您好我如何在创建文件的时间和现在之间获得差异并将其转换为小时。

for (unsigned i = 0; i < strpokenter code herele.size(); i++)
{
    const char * conv_my_str = strpole[i].c_str();
    stat(conv_my_str, & stbuf);
    oldate = ctime( & stbuf.st_atime);
    cout << oldate;
    time( & rawtime);
    nowdate = ctime( & rawtime);
    cout << nowdate;
    getchar();
}

3 个答案:

答案 0 :(得分:1)

我通过auto和chrono解决了这个问题,但是如果你想要几个小时就有分钟的样本,因为我首先说你可以在代码中轻松地将分钟改为几小时。

auto now = std::chrono::duration_cast<std::chrono::minutes>(actTime - std::chrono::system_clock::from_time_t(stbuf.st_ctime)).count();

答案 1 :(得分:-1)

看看GetFileTime 这两个链接可能会有助herehere

答案 2 :(得分:-1)

如果我说得对,问题就是以小时为单位表示增量时间...所以你没有阅读文件创建时间或实际时间的麻烦...... 所以你可以这样:

#include <iostream>
#include <string>

std::string getDuration(const long ms) {

    int seconds = (int)(ms / 1000) % 60;
    int minutes = (int)((ms / (1000 * 60)) % 60);
    int hours = (int)((ms / (1000 * 60 * 60)) % 24);

    return "H:" + std::to_string(hours) +",M:"+ std::to_string(minutes)+",S:"+ std::to_string(seconds);
}

int main() {
    long ms = 60 * 1000;
    std::cout << "Duration: " << getDuration(ms) << std::endl;
    return 0;
}