2012-01-05 1 views
0

でUNIXタイムスタンプに秒を変換すると、タイムスタンプを渡された後、2つの完全な日付を表示する必要があり、私のコードです:がここにC++

#include <iostream> 
#include <fstream> 
#include <time.h> 
#include <string> 

using namespace std; 

int main (int argc, char* argv[]) 
{ 

    time_t startTime_t = (time_t) argv[1]; 
    time_t endTime_t = (time_t) argv[2]; 

    cout << argv[1] << endl << argv[2] << endl; 
    cout << startTime_t << endl << endTime_t << endl; 

    string startTime = asctime(localtime(&startTime_t)); 
    string endTime = asctime(localtime(&endTime_t)); 

    cout << startTime << endl << endTime << endl; 

    return 0; 
} 

あなたが見ることができるように私は、time_tの秒からの変換と間違って何かをやっています参考のため

$ ./a 1325783860 1325791065 
1325783860 
1325791065 
1629762852 
1629763900 
Mon Aug 23 19:54:12 2021 

Mon Aug 23 20:11:40 2021 

:この出力によって

$ date -d @1325783860 
Thu Jan 5 12:17:40 EST 2012 
+0

宿題の場合は、そのようにタグ付けする必要があります – antlersoft

+0

宿題ではありません。それは個人的なプロジェクトで生まれました。 – gsingh2011

答えて

3

あなただけの目をキャストすることはできませんtime_tへのリングポインタ。 atol()を使用して文字列からlongを取得し、それをtime_tにキャストします。

戻ってきた値は、時間として解釈されるポインタ算術値、または本質的にランダムです。