Я создал текущую time_point и преобразовал ее в структуру tm и напечатал ее значения. Теперь преобразование этой структуры tm в time_point. При сравнении первого и второго time_points, это говорит о том, что они разные. Но значения структуры точно такие же.Не удается проверить преобразование с time_point в tm и tm обратно в time_point
Может ли кто-то увидеть, где я делаю неправильно?
#include <iostream>
#include <ctime>
#include <chrono>
using namespace std;
using namespace std::chrono;
system_clock::time_point toTimePoint(struct tm tim)
{
return std::chrono::system_clock::from_time_t(mktime(&tim));
}
tm toTm(system_clock::time_point tp)
{
time_t tmt = system_clock::to_time_t(tp);
struct tm * tim = localtime(&tmt);
struct tm newTim(*tim);
cout << "Info: " << tim->tm_mday << "/" << tim->tm_mon << "/" << tim->tm_year << " " << tim->tm_hour << ":" << tim->tm_min << ":" << tim->tm_sec << endl;
cout << "Is Daylight saving: " << tim->tm_isdst << " wday: " << tim->tm_wday << " yday: " << tim->tm_yday << endl;
return newTim;
}
int _tmain(int argc, _TCHAR* argv[])
{
system_clock::time_point tp = system_clock::now();
struct tm tmstruct = toTm(tp);
system_clock::time_point newtp = toTimePoint(tmstruct);
cout << "Time comparison: " << (tp == newtp) << endl;
toTm(newtp);
}
Выход:
Информация: 8/4/115 16:26:20 Is Переход на летнее: 0 WDAY: 5 yday: 127
Время сравнения: 0
информация : 8/4/115 16:26:20 Является летним днем: 0 день: 5 yday: 127