現在の真夜中のエポックからの秒数を取得する次の関数があります。
long int midnight_time()
{
time_t t;
struct tm *local;
t = time(NULL);
struct tm timeinfo;
local = localtime(&t);
timeinfo.tm_year = local->tm_year;
timeinfo.tm_mon = local->tm_mon;
timeinfo.tm_mday = local->tm_mday;
timeinfo.tm_hour = 0;
timeinfo.tm_min=0;
timeinfo.tm_sec=0;
long int midnight_epoch = mktime(&timeinfo);
return midnight_epoch;
}
この関数をコードで2回呼び出したとき、たとえば
cout<<midnight_time()<<endl;
cout<<midnight_time()<<endl;
たとえば、1367816400 1367812800 など、一貫して根本的に異なる結果が得られます。
これは約4000秒の差です。数値が同じであることを期待します。誰かが私が間違っていることを見ることができますか?