include chrono c что это

Хроно в C ++

Библиотека Chrono используется для работы с датой и временем. Эта библиотека была разработана для учета того факта, что таймеры и часы могут отличаться в разных системах и, следовательно, для улучшения с течением времени с точки зрения точности. Уникальная особенность хронографа заключается в том, что он обеспечивает нейтральное с точки зрения точности понятие, отделяя продолжительность и момент времени («время») от определенных часов.

продолжительность

Объект длительности выражает промежуток времени с помощью отсчета, например, минуты, два часа или десять миллисекунд. Например, «42 секунды» могут быть представлены продолжительностью, состоящей из 42 тиков в 1-секундную единицу времени.

// C ++ программа для иллюстрации утилиты
// длительность функции :: count
#include
#include

using namespace std::chrono;

// std :: chrono :: milliseconds является

std::cout «duration (in periods): » ;

std::cout «duration (in seconds): » ;

Часы

Часы состоят из начальной точки (или эпохи) и частоты тиков. Например, часы могут иметь эпоху 22 февраля 1996 года и тикать каждую секунду. C ++ определяет три типа часов:

Момент времени

Объект time_point выражает момент времени относительно эпохи часов. Внутри объект хранит объект типа длительности и использует тип Clock в качестве ссылки для своей эпохи.

// C ++ программа для иллюстрации момента времени
// и функции системных часов
#include
#include
#include

// Функция для расчета
// ряд Фибоначчи

long fibonacci(unsigned n)

return fibonacci(n-1) + fibonacci(n-2);

// Используем момент времени и системный час

std::chrono::time_point start, end;

std:: time_t end_time = std::chrono::system_clock::to_time_t(end);

std::cout «finished computation at » ctime (&end_time)

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Источник

C++20. Библиотека chrono и Время суток

Обновл. 15 Сен 2021 |

В стандарте C++20 библиотека chrono из C++11 получила важные дополнения. Наиболее заметными из них являются: календарь, поддержка часовых поясов, тип времени суток и мощный функционал форматирования временных интервалов.

Библиотека времени в C++11

Для начала вам потребуется базовое понимание библиотеки chrono. Стандарт C++11 ввел три основных компонента для работы со временем:

Момент времени (англ. «Time Point») — задается точкой отсчета (так называемой «эпохой») и сопутствующим временным интервалом.

Временной интервал/Длительность (англ. «Time duration») — разница между двумя моментами времени. Определяется числом «тиков» времени.

Часы (англ. «Clock») — состоят из точки отсчета (эпохи) и «тика» времени. Эта информация позволяет рассчитать текущее время.

Все три компонента зависят друг от друга.

Расширение библиотеки chrono в C++20

Стандарт C++20 добавляет в библиотеку chrono новые компоненты:

Время суток (англ. «Time of day») — это временной интервал, ведущий свой отсчет с полуночи, представляемый в виде часов, минут, секунд и долей секунды.

Календарь (англ. «Calendar») — обозначает различные календарные даты, такие как: год, месяц, день недели или n-й день недели.

Часовой пояс (англ. «Time-zone») — представляет собой время, характерное для определенной географической области.

По сути, функционал часовых поясов (C++20) основан на функционале календаря (C++20), а функционал календаря (C++20) основан на первоначальном функционале библиотеки chrono (C++11).

Но это еще не всё. Расширения библиотеки включают в себя новые часы. Благодаря библиотеке форматирования в C++20, мы теперь можем легко считывать/записывать временные интервалы.

Библиотека date

При написании данной статьи еще ни один компилятор C++ не реализовал поддержку расширения библиотеки chrono из стандарта C++20. Но не стоит отчаиваться, ведь мы можем воспользоваться её прототипом — библиотекой date от Howard Hinnant, которая, по сути, является надмножеством расширенного функционала работы со временем из стандарта C++20.

Существуют различные способы использования данной библиотеки:

Онлайн-компилятор wandbox. Говард уже загрузил заголовочный файл date.h, которого будет достаточно для наших экспериментов с календарем и новым типом std::time_of_day. Также вы можете сами скопировать содержимое актуального файла date.h в соответствующую вкладку wandbox-а:

Либо же можно скопировать заголовочный файл date.h в папку с заголовочными файлами вашего компилятора C++.

Требуемый стандарт C++

В целом, для работы с библиотекой date, компилятора, поддерживающего стандарт C++14, будет достаточно. Правда, есть одно исключение, а именно:

Источник

Include chrono c что это

Этот браузер больше не поддерживается.

Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.

Включите стандартный заголовок для определения классов и функций, которые представляют и обрабатывают длительность и время ожидания.

начиная с Visual Studio 2015, реализация steady_clock изменена в соответствии со стандартными требованиями C++ для обеспечения стабильности и монотонности:

Требования

Заголовок

Имен

Типы календрикал

Часы

Часовые пояса

Исключения

Имя Описание
ambiguous_local_time Ошибка, вызываемая при local_time преобразовании в, sys_time и результат неоднозначен.
nonexistent_local_time Ошибка, вызываемая при local_time преобразовании в, sys_time в результате чего не существует времени.

Функции

Связанные с часовым поясом

Имя Описание
current_zone Возвращает текущий часовой пояс.
get_tzdb Возвращает запись базы данных первого часового пояса.
get_tzdb_list Возвращает список записей базы данных часового пояса.
reload_tzdb Возвращает обновленную запись базы данных часового пояса.
remote_version Проверяет наличие обновленной записи базы данных часового пояса.

Операторы

Определения типов

Удобные типы

Имя Описание
typedef duration nanoseconds; Синоним для duration типа с тактовым периодом, имеющим один биллионс (1/1000000000) секунды.
typedef duration microseconds; Синоним для duration типа с тактовым периодом в один миллион (1/1000000) секунды.
typedef duration milliseconds; Синоним для duration типа с тактовым периодом в одну тысячу (1/1000) секунды.
typedef duration seconds; Синоним для duration типа с тактовым периодом в 1 секунду.
typedef duration > minutes; Синоним для duration типа с тактовым периодом в 1 минуту.
typedef duration > hours; Синоним для duration типа с тактовым периодом в 1 час.

Удобные типы

Признаки типов

Литералы

Объявление Описание
hours operator «» h(unsigned long long Val) Указывает часы как целочисленное значение.
duration > operator «» h(long double Val) Указывает часы как значение с плавающей запятой.
minutes (operator «» min)(unsigned long long Val) Указывает минуты как целочисленное значение.
duration > (operator «» min)( long double Val) Указывает минуты как значение с плавающей запятой.
seconds operator «» s(unsigned long long Val) Указывает минуты как целочисленное значение.
duration operator «» s(long double Val) Указывает секунды как значение с плавающей запятой.
milliseconds operator «» ms(unsigned long long Val) Указывает миллисекунды как целочисленное значение.
duration operator «» ms(long double Val) Указывает миллисекунды как значение с плавающей запятой.
microseconds operator «» us(unsigned long long Val) Указывает микросекунды как целочисленное значение.
duration operator «» us(long double Val) Указывает микросекунды как значение с плавающей запятой.
nanoseconds operator «» ns(unsigned long long Val) Указывает наносекунды как целочисленное значение.
duration operator «» ns(long double Val) Указывает наносекунды как значение с плавающей запятой.

В следующих примерах показано, как использовать литералы:

Источник

Операторы

operator+

Оператор сложения для следующих типов:

Возвращаемое значение

1) после преобразования Left и Right в общий тип возвращает значение duration с числом тактов, равным сумме преобразованных счетчиков тактов.

7) возвращает результат сложения года с указанным числом лет.

8) возвращает результат сложения числа месяцев и лет с указанным месяцем и годом.

17) возвращает: ymwdl + dy

Пример: operator+

Унар operator+

Примените унарный плюс к следующим типам:

Возвращаемое значение

operator-

Оператор вычитания для следующих типов:

Возвращаемое значение

6) возвращает разницу в месяцах между Left и Right

8) возвращает число дней между двумя рабочими днями.

9) возвращает year(int(y)-ys.count)())

11) возвращает результат вычитания месяцев или лет из year_month значения.

12) возвращает результат вычитания годовых месяцев из year_month_day значения.

Пример: operator-

Унар operator-

Возвращаемое значение

Возвращает неотрицательную копию *this

Пример: унарный operator-

operator!=

Определяет, следует ли:

1) два duration объекта не представляют одинаковое число тактов.
2) два time_point объекта не представляют один и тот же момент времени.

Параметры

Возвращаемое значение

operator*

Параметры

Mult
Целочисленное значение.

Возвращаемое значение

2) Если is_convertible > is_convertible > указано, эта функция не участвует в разрешении перегрузки. Дополнительные сведения см. в разделе type_traits >.

operator

Параметры

Возвращаемое значение

operator

Параметры

Возвращаемое значение

operator==

Определяет, следует ли:

Параметры

Left
Левый объект для сравнения, например Left == Right

Right
Правый из сравниваемых объектов.

Возвращаемое значение

operator>

Параметры

Возвращаемое значение

operator>=

Параметры

Возвращаемое значение

operator

Параметры

Возвращаемое значение

1)
0 наличии Left == Right
наличии Left
> 0 наличии Left > Right

2)
Эквивалентно: Left.month() Right.month()

Пример: operator

operator

Выводит следующие типы в поток:

Параметры

Traits
Описывает CharT атрибуты для basic_string basic_istream специализации и.

os
Выходной поток, в который выдается day значение.

hms
hh_mm_ss Для вывода.

li
local_info Для вывода.

md
month_day Для вывода.

mdl
month_day_last Для вывода.

mwd
month_weekday Для вывода.

mwdl
month_weekday_last Для вывода.

si
sys_info Для вывода.

wd
weekday Для вывода.

wdi
weekday_indexed Для вывода.

wdl
weekday_last Для вывода.

ym
year_month Для вывода.

ymd
year_month_day Для вывода.

ymdl
year_month_day_last Для вывода.

ymwd
year_month_weekday Для вывода.

ymwdl
year_month_weekday_last Для вывода.

zt
zoned_time Для вывода.

Возвращаемое значение

Переданный поток вывода, os

Комментарии

2) hh_mm_ss значение выводится в виде часов: минуты: секунды: доли секунды. Например, «00:00:05.721 «

15) year_month_weekday выходные данные в формате гггг/месяц/Weekday [Индекс]. Например: 1996/Jan/Wed[1]

16) year_month_weekday_last выходные данные в формате гггг/месяц/будни [Last]. Например: 1996/Jan/Wed[last]

17) tai_time выходные данные в формате гггг-мм-дд чч: мм: СС. ССССССС. Например: 2021-08-13 23:23:08.4358666

18) utc_time выходные данные в формате гггг-мм-дд чч: мм: СС. ССССССС. Например: 2021-08-13 23:23:08.4358666

19) gps_time выходные данные в формате гггг-мм-дд чч: мм: СС. ССССССС. Например: 2021-08-13 23:23:08.4358666

22) в реализации Майкрософт local_info выводится как гггг-мм-дд чч: мм:: СС. СССССС. Например: 2021-09-17 13:55:59.6590120

23) Местное время в zoned_time (получено как zt.get_local_time() ) выводится с использованием часового пояса Format гггг-мм-дд чч: мм: СС. Например: 2021-09-15 10:45:00 GMT-6

Пример: operator

operator modulo

Параметры

Div
Целочисленное значение.

Left
Делимое. Остаток от деления делимого на делитель.

Right
Правый duration объект, делитель.

Возвращаемое значение

operator/ для duration ;

Параметры

Div
Целочисленное значение.

Left \w левый duration объект.

Возвращаемое значение

operator/ для календарных дат

Предоставляет синтаксис для создания календарных дат в следующих формах:

День можно заменить на:

last
weekday[n] за n – й день месяца
weekday[last] за последний weekday месяц.

Частичные даты могут быть сформированы следующим образом:

Целые числа можно использовать, если интерпретация не является неоднозначным.

Параметры

lastspec
Пустой тип тега, указывающий последний элемент в последовательности. Например, 2021y/May/last — это последний день 2021 мая.

mdl
Последний день указанного месяца.

mwd
N-й день недели указанного месяца.

mwdl
Последний день недели указанного месяца.

wdi
Индекс дня недели ( weekday_indexed ). Например, weekday_indexed(Monday, 1) первый понедельник месяца.

wdl
Последний будний день месяца. Например, Monday[last] — это последний понедельник месяца.

Источник

Функции

abs(duration)

Синтаксис

Параметры

Period
std::ratio Тип, представляющий отношение секунды к Rep типу источника (т. е. в секундах на Rep ).

Возвращаемое значение

ceil(duration)

Синтаксис

Параметры

Period
std::ratio Тип, представляющий отношение секунды к Rep типу источника (т. е. в секундах на Rep ).

Возвращаемое значение

Комментарии

ceil(time_point)

Синтаксис

Параметры

Возвращаемое значение

Комментарии

clock_cast

Преобразует значение time_point для одного часового эквивалента time_point для другого часов.

Синтаксис

Параметры

Duration
Объект duration SourceClock или, который вы указали.

SourceClock
Тип часов, на котором time_point основывается преобразование.

Возвращаемое значение

Комментарии

current_zone

Возвращает текущий объект часового пояса.

Синтаксис

Возвращаемое значение

duration_cast

Приводит объект duration к указанному целевому duration типу.

Синтаксис

Параметры

Period
std::ratio Тип, представляющий отношение секунды к Rep типу источника (т. е. в секундах на Rep ).

d
Исходный duration объект для приведения к целевому duration типу.

Возвращаемое значение

Комментарии

floor(duration)

Синтаксис

Параметры

Period
std::ratio Тип, представляющий отношение секунды к Rep типу источника (т. е. в секундах на Rep ).

Возвращаемое значение

Комментарии

floor(time_point)

Синтаксис

Параметры

Возвращаемое значение

Комментарии

from_stream

Если анализ завершается неудачей, is.setstate ios_base::failbit вызывается () и выходной параметр не изменяется.

Параметры шаблона

Alloc
Тип, представляющий объект распределителя, который обрабатывает выделение и освобождение памяти в строке.

traits
Описывает charT атрибуты для basic_string basic_istream специализации и.

Rep
Тип внутреннего представления duration типа.

Period
std::ratio Тип, представляющий отношение секунды к Rep типу источника (т. е. в секундах на Rep ).

Duration
duration Тип, используемый для специализации времени.

Параметры

abbrev
Если параметр abbrev не имеет nullptr значение, а описатель формата %Z задан, а синтаксический анализ выполнен успешно, то abbrev содержит Проанализированное значение.

d
Если анализ выполнен успешно, содержит проанализированный день, когда функция возвращает значение.

dur
Объект, duration проанализированный из потока.

ft
Объект, file_time проанализированный из потока.

gt
Объект, gps_time проанализированный из потока.

is
Входной поток для синтаксического анализа.

lt
Объект, local_time проанализированный из потока.

m
Объект, month проанализированный из потока.

md
Объект, month_day проанализированный из потока.

st
Объект, sys_time проанализированный из потока.

tt
Объект, tai_time проанализированный из потока.

ut
Объект, utc_time проанализированный из потока.

wd
Объект, weekday проанализированный из потока.

y
Объект, year проанализированный из потока.

ym
Объект, year_month проанализированный из потока.

ymd
Объект, year_month_day проанализированный из потока.

Возвращаемое значение

Комментарии

7) если используется и успешно проанализирован, это значение будет присвоено, *abbrev Если abbrev не равно null. Если %z (или измененный вариант) используется и успешно проанализирован, это значение будет присвоено, *offset Если offset не равно null.

12) если используется и успешно проанализирован, это значение будет присвоено, *abbrev Если abbrev не равно null. Если %z (или измененный вариант) используется и успешно проанализирован, это значение будет присвоено, *offset Если offset не равно null.

from_stream строки формата

Формат может быть одной из следующих строк:

День недели.

Неделя или день года

Время дня

Месяц

Год на основе ISO 8601 в неделю

В стандарте ISO 8601 недели начинаются с понедельника. Первая неделя года должна включать 4 января и включать первый четверг года.

Общие сведения

Флаги по типу

Класс Спецификатор или флаг
day d, e
duration j, H, I, M, S, r, R, T, p, (q, Q только для формата, без синтаксического анализа)
file_time Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, D, e, а, A, U, W, H, T, M, S, r, R, p,
gps_time Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, D, e, а, A, U, W, H, T, M, S, r, R, p,
hh_mm_ss H, I, M, S, r, R, T, p
local_time c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, D, e, a, а, U, W, H, I, M, S, r, R, T, p
local_time_format_t z, Z, c, x, X, D, F, Y, C, Y, b, B, h, m, D, e, a, а, u, w, H, I, M, S, r, R, T, p, g, G, U, V, W
local_info z, Z
month b, h, B, m
month_day B, d, j, e, b, h, m
month_day_last B, d, j, e, b, h, m
month_weekday b, B, h, m, a, а, u, w
month_weekday_last b, B, h, m, a, а, u, w
sys_info z, Z
sys_time Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, D, e, а, A, U, W, H, T, M, S, r, R, p,
tai Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, D, e, а, A, U, W, H, T, M, S, r, R, p,
utc_time Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, D, e, а, A, U, W, H, T, M, S, r, R, p,
weekday а, A, u, w
weekday_indexed а, A, u, w
weekday_last а, A, u, w
year Y, y, C
year_month Y, y, B, g, G, h, C, B, m
year_month_day D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, U, W
year_month_day_last D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, U, W
year_month_weekday D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, U, W
year_month_weekday_last D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, U, W
zoned_time z, Z, c, x, X, D, F, Y, C, Y, b, B, h, m, D, e, a, а, u, w, H, I, M, S, r, R, T, p, g, G, U, V, W

get_leap_second_info

Возвращает объект в leap_second_info течение указанного времени. Это предоставляет сведения о том, возникает ли предоставленное время во время вставки с помощью LEAP-секундного времени. Он также предоставляет число високосных секунд, которые были добавлены между 1 января 1970 и указанным временем. Посекундная Вставка, когда служба межязыкового вращения и справочной системы (ИЕРС) объявляет, что будет добавлена LEAP-секунда (в течение 61 секунды), чтобы учитывать разницу между атомарным временем и временем, которые отписываются путем измерения поворота земли, что является неравномерным и постепенно снижает скорость.

Синтаксис

Параметры

Возвращаемое значение

get_tzdb

Возвращает первую запись в списке базы данных часового пояса для всей программы.

Синтаксис

Возвращаемое значение

Комментарии

Если он еще не инициализирован, get_tzdb инициализирует базу данных часового пояса для всей программы при первом доступе. При инициализации база данных tzdb_list содержит один инициализированный tzdb объект.

get_tzdb_list

Получает одноэлементную базу данных часового пояса для всей программы.

Синтаксис

Возвращаемое значение

Комментарии

Если он еще не инициализирован, get_tzdb_list инициализирует базу данных часового пояса для всей программы при первом доступе. При инициализации база данных tzdb_list содержит один инициализированный tzdb объект. get_tzdb_list Функция является потокобезопасной.

is_am

Предикат, определяющий, является ли указанный час частью дня ( накопительный-меридием (AM)).

Синтаксис

Параметры

h
Представление источника hours в 24-часовом формате времени.

Возвращаемое значение

is_pm

Предикат, определяющий, находится ли указанный час в части дня, выступающей после меридием (PM).

Синтаксис

Параметры

h
Представление источника hours в 24-часовом формате времени.

Возвращаемое значение

locate_zone

Возвращает объект часового пояса, указанный по имени часового пояса.

Синтаксис

Параметры

tz_name
Имя возвращаемого часового пояса.

Возвращаемое значение

Комментарии

Если он еще не инициализирован, locate_zone инициализирует базу данных часового пояса для всей программы при первом доступе. При инициализации база данных tzdb_list содержит один инициализированный tzdb объект.

make12

Возвращает указанный час в 12-часовом формате времени.

Синтаксис

Параметры

h
Представление источника hours в 24-часовом формате времени.

Возвращаемое значение

make24

Возвращает указанный час в 24-часовом формате времени.

Синтаксис

Параметры

h
Представление источника hours в 12-часовом формате времени.

is_pm
Исходное hours представление — PM (if true ) или AM (если false ).

Возвращаемое значение

reload_tzdb

Перезагружает базу данных часового пояса, если доступна обновленная информация.

Синтаксис

Возвращаемое значение

Комментарии

remote_version

Возвращает строку, содержащую последнюю версию удаленной базы данных.

Синтаксис

Возвращаемое значение

round(duration)

Округляет указанное значение duration до ближайшего представления duration в целевом типе.

Синтаксис

Параметры

Period
std::ratio Тип, представляющий отношение секунды к Rep типу источника (т. е. в секундах на Rep ).

Возвращаемое значение

Комментарии

round(time_point)

Возвращает ближайшую точку во времени, представленную в целевом объекте, duration в указанную точку времени.

Параметры

Возвращаемое значение

Комментарии

time_point_cast

Приводит time_point объект к time_point типу, имеющему другой duration тип.

Синтаксис

Параметры

tp
time_point Объект, который необходимо привести к ToDuration типу.

Возвращаемое значение

Комментарии

Источник

Читайте также:  какой орех кладут в плов
Сказочный портал