Класс time_point
Класс time_point представляет собой момент времени, выраженный в виде продолжительности, прошедшей с начала отсчета конкретных часов. Он тесно связан с классами часов, такими как system_clock, steady_clock и high_resolution_clock. Первым параметром шаблона выступает тип часов, к которым привязана точка времени, а вторым - тип длительности, используемый для хранения времени с начала эпохи этих часов.
Синтаксис
template <class Clock, class Duration = typename Clock::duration>
class time_point;
Пример
Давайте получим текущую точку времени с помощью system_clock и выведем количество миллисекунд, прошедших с начала эпохи:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
auto now = chrono::system_clock::now();
auto ms = chrono::duration_cast<chrono::milliseconds>(now.time_since_epoch()).count();
cout << ms << endl;
return 0;
}
Результат выполнения кода:
1735689600000
Пример
Давайте создадим точку времени, прибавим к ней 10 секунд и выведем разницу между новой и исходной точкой:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
chrono::system_clock::time_point tp;
auto tp2 = tp + chrono::seconds(10);
auto diff = tp2 - tp;
cout << diff.count() << endl;
return 0;
}
Результат выполнения кода:
10
Смотрите также
-
класс
system_clock,
который представляет системные часы -
метод
now,
который возвращает текущую точку времени -
функция
time_point_cast,
которая преобразует точку времени к другой длительности -
функция
sleep_until,
которая приостанавливает поток до указанной точки времени