Страницы

Поиск по вопросам

суббота, 6 июля 2019 г.

Как в std::chrono получить time_point начала текущих суток (с максимально возможной точностью)?

Мне в своём проекте понадобилось получить 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); }

Комментариев нет:

Отправить комментарий