Мне в своём проекте понадобилось получить std::chrono::time_point со временем 00:00:00 текущих суток с макимально возмой точность. Как мне это сделать?
Ответ
Удалось решить проблему самому. В конечном итоге получилась такая функция:
std::chrono::time_point GetStartTimeOfToday (){
using high_resolution_clock = std::chrono::high_resolution_clock;
std::time_t t_now = std::chrono::system_clock::to_time_t(high_resolution_clock::now()); // Получаем текущее время в виде std::time_t
std::tm tmp = *localtime(&t_now); // Конвертируем в std::tm.
tmp.tm_hour = 0; // Обнуляем все поля времени.
tmp.tm_min = 0;
tmp.tm_sec = 0;
std::time_t t_start_time_of_day = std::mktime(&tmp); // Делаем обратные преобразования.
return high_resolution_clock::from_time_t(t_start_time_of_day);
}
Комментариев нет:
Отправить комментарий