c++の時間差を取得するプログラムを連続で実行すると値がおかしくなる
解決したいこと
C++で1時間後の時間を取得し今の時間と差を取得するプログラムを作りました。
連続で実行するとたまに3600(1時間の秒数)ではなくなります。
解決方法を教えてください。
発生している問題・エラー
aaaaa@MacBook-Air test % ./a.out
2022/08/15-04:36:57
時間 : 3600
aaaaa@MacBook-Air test % ./a.out
2022/08/15-04:37:01
時間 : 7200
該当するソースコード
#include <time.h>
#include <iostream>
using namespace std;
int main()
{
time_t time1;
time_t time2 = time(NULL) - 3600;
struct tm result;
char date[64];
strftime(date, sizeof(date), "%Y/%m/%d-%H:%M:%S", localtime(&time2));
if (strptime(date, "%Y/%m/%d-%H:%M:%S", &result) == NULL)
{
printf("error");
}
cout << date << endl;
time(&time1);
cout << "時間 : " << difftime(time1, mktime(&result)) << endl;
return 0;
}
0