我有以下代码:
#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 ++很新,我不确定我是否会以完全错误的方式解决这个问题。还有另一种方法吗? 提前谢谢。
答案 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