如何将时间转换为整数

时间:2014-08-28 08:25:38

标签: c++ time int

我有以下代码:

#include <ctime>
#include <stdio.h>
#include <iostream>
#include <chrono>
using namespace std;

const std::string currentDateTime() {
    time_t     now = time(0);
    struct tm  tstruct;
    char       buf[80];
    tstruct = *localtime(&now);
    strftime(buf, sizeof(buf), "%X", &tstruct);

    return buf;
}

int main() {   
    std::cout << "Current Time is: " << currentDateTime() << std::endl;
    return 0;
}

我编译了这个,我得到:当前时间是:18:30:11

我想知道如何将其转换为整数,因此它看起来只是18.5或者其他东西。我想这样做,因为我想创建一个时间表 例如:如果是10:30,我希望程序能够告诉我我的学科(学校)。 像这样:

if(time == 10.5)
    std::cout<<(subject);

关于如何做到这一点的任何建议?我对c ++很新,我不确定我是否会以完全错误的方式解决这个问题。还有另一种方法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为您的意思是将时间转换为浮点数。在currentDateTime功能中,您已使用struct tm。基于此,您可以通过以下方式获得float小时值:

time_t now = time(0);
struct tm tstruct = *localtime(&now);

float f = tstruct.tm_hour + tstruct.tm_min / 60.0 + tstruct.tm_sec / 3600.0;
cout << f << endl; // prints 10.1025 at 10:06:09