2014-08-28 6 views
0

У меня следующий код:Как преобразовать время в целое

#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

'18.5' не является целым числом. –

ответ

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 
+0

я попытался сделать это, но когда я запускаю его, я получаю это: 19,1711 Текущее время: ├ÉÉÉÉÉ ■ ■ Э. ║¸┐vÉÉÉÉÉÞ ♣ ç ├QìL + ╚âß☼ ♥ ┴ ← ╔♂┴YÚ1 \ ÉÉÉÉÉï Uïýïà└ t☼ü8|| ☼ä ♫ s ♦] ├ÉÉÉÉÉï Uïýâý $ í'↨┼v3┼ëE³SV ïu♀Þà ïÏë] Ó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 = [ÞéL ïÕ] ÉÉÉÉÉÉï Uïýâý► ìMj ÞäL â% ╠►┼v ïâ ° ■ ☼ä ï ♦ â ° ²☼ä┴☺ â ° ³☼ä♀ï ♦ Ç} ³ Возвращенный процесс -1073741819 (0xC0000005) время выполнения: 2,589 с Нажмите любую для продолжения. И программа перестает отвечать, – user3036519

+0

Nevermind, мне удалось исправить это, добавив return 0; в конце. – user3036519

Смежные вопросы