2014-08-28 56 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; 
} 

我編譯此,我也得到:當前時間爲:十八點30分11秒

我想知道如何轉換那成一個整數,所以它只出現在18.5或者這些線上。我想這樣做,因爲我想創建一個時間表。
例如:如果10點半,我希望程序能夠告訴我,我有什麼主題(學校)。 類似這樣的:

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

有關如何做到這一點的任何建議?我對C++相當陌生,而且我不確定我是否會以完全錯誤的方式去解決這個問題。有沒有另一種方法來做到這一點? 在此先感謝。

+1

'18.5'不是一個整數。 – 2014-08-28 08:40:06

回答

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||☼ä♫小號♦]├ÉÉÉÉÉï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

沒關係,我設法通過添加返回0來解決它;最後。 – user3036519 2014-08-28 10:49:26

相關問題