如何时间转换为整数
我有以下代码:如何时间转换为整数
#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;
}
我编译此,我也得到:当前时间为:十八点30分11秒
我想知道如何转换那成一个整数,所以它只出现在18.5或者这些线上。我想这样做,因为我想创建一个时间表。
例如:如果10点半,我希望程序能够告诉我,我有什么主题(学校)。 类似这样的:
if(time == 10.5)
std::cout<<(subject);
有关如何做到这一点的任何建议?我对C++相当陌生,而且我不确定我是否会以完全错误的方式去解决这个问题。有没有另一种方法来做到这一点? 在此先感谢。
我想你指的是时间转换为浮点数。在您的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
我想这样做,但是当我运行它,我得到这个: 19.1711 当前时间为:├ÉÉÉÉÉ■电子邮件■║¸┐vÉÉÉÉÉÞ♣ç├QìL+╚âß☼♥┴←╔♂┴YÚ1\ ÉÉÉÉÉïUïýïà└ t☼ü8||☼ä♫小号♦]├ÉÉÉÉÉïUïýâý$í'↨┼v3┼ëE³SVïu♀ÞÃIIE]ÓYà█☼ä╬s☺W¯¯ 3ï¤ïÃëMõ9ÿ►_┼v☼äuì♦Aâ└0ëMõ =rμü¹Þ²☼ä¼s☺ü¹Ú²☼äás☺☼À├P§lq┼và└☼äÄs☺ìEÞ PS§Pq┼và└☼ä了!我♦h☺☺ìF∟WPÞO? ë^♦â─♀3█ë〜♀C9]Þ☼çáî♦ë3└ì〜►☼À╚ï┴┴ß►♂┴½½½VÞ▀Y3└_ ïM³^3═[THEL IO]├ÉÉÉÉÉïUïýâý► “MjÞä┼┼┼☼☼☼♦┴☺┴☺♦♦” 程序返回-1073741819(0xC0000005)执行时间:2.589 s 按任意键关键是要继续。 程序停止响应, – user3036519 2014-08-28 09:14:00
没关系,我设法通过添加返回0来解决它;最后。 – user3036519 2014-08-28 10:49:26
'18.5'不是一个整数。 – 2014-08-28 08:40:06