Sdílet prostřednictvím


<chrono>

Zahrňte standardní hlavičku <chrono> pro definování tříd a funkcí, které představují a manipulují s časovými dobami trvání a časovými okamžiky.

Počínaje sadou Visual Studio 2015 se implementace steady_clock změnila tak, aby splňovala standardní požadavky jazyka C++pro stálost a monotonicity:

  • steady_clock je nyní založena na QueryPerformanceCounter()
  • high_resolution_clock je nyní typedef pro steady_clock v implementaci Microsoft C++, steady_clock::time_point je nyní pro typedef chrono::time_point<steady_clock>. To ale nemusí nutně být případ jiných implementací.

Požadavky

Záhlaví: <chrono>

Regionální zákonodárci občas mění časová pásma a mezinárodní orgán norem určuje, kdy se mají počítat nové přestupné sekundy. Do Windows 10 byla přidána databáze těchto změn. Konkrétně:

Funkce Verze klienta Verze serveru
Přestupné aktualizace druhé databáze Windows 10 verze 1809 nebo novější Windows Server 2019 nebo novější
Podpora časových pásem Windows 10 verze 1903/19H1 nebo novější Windows Server 2022 nebo novější

Při použití zařízení s časovým pásmem ve starších verzích Windows dojde k chybě za běhu.

Obor názvů: std

Kalendrické typy

Název Popis
common_type Struct Popisuje specializace šablony common_type třídy pro vytváření instancí duration a time_point.
Třída day Den v měsíci. Například 25. den v měsíci.
Třída duration Časový interval.
duration_values Struct Poskytuje konkrétní hodnoty pro duration parametr Repšablony .
Třída hh_mm_ss Rozdělí duration hodiny:minuty:sekundy.
last_spec Slouží k označení poslední položky v měsíci, například poslední den v týdnu v měsíci (poslední úterý v únoru 2020) nebo poslední den v měsíci (poslední den v dubnu 2019).
Třída leap_second Datum a hodnota vložené přestupné sekundy.
leap_second_info Struct Data vrácená .get_leap_second_info
Třída month Měsíc v roce. Například červenec.
Třída month_day Konkrétní den konkrétního měsíce. Například 30. července.
Třída month_day_last Poslední den v měsíci.
Třída month_weekday Nth weekday of a specific month.
Třída month_weekday_last Nth weekday of a specific month.
Třída time_point Bod v čase.
Třída weekday Den v týdnu.
Třída weekday_last Poslední den v týdnu měsíce.
Třída weekday_indexed Kombinuje den v týdnu s indexem, který představuje den v týdnu v měsíci.
Třída year Rok v gregoriánském kalendáři.
Třída year_month Rok a měsíc. Den není zadaný.
Třída year_month_day Rok, měsíc a den.
Třída year_month_day_last Poslední den konkrétního měsíce a roku.
Třída year_month_weekday Konkrétní rok, měsíc a nth weekday v měsíci.
Třída year_month_weekday_last Konkrétní rok, měsíc a poslední den v týdnu v měsíci.

Hodiny

Název Popis
Třída file_clock Alias pro hodiny používané pro std::filesystem::file_time_type, který se používá k vyjádření časových razítek souboru.
Třída gps_clock Hodiny, které udržují GPS čas. Měří čas od první neděle 1980 v 00:00:00 UTC.
high_resolution_clock Struct Hodiny s nanosekundovým intervalem.
local_t Struct Pseudo-hodiny používané jako argument time_point šablony označující, že time_point představuje místní čas.
steady_clock Struct Hodiny steady . Tyto hodiny jsou upřednostňované pro měření časových intervalů.
system_clock Struct Hodiny založené na hodinách systému v reálném čase.
Třída tai_clock Měří mezinárodní atomický čas (TAI) od čtvrtek 1. ledna 1958 v 00:00:00. Tyto hodiny nezohlácuje přestupné sekundy.
Třída utc_clock Měří čas od 00:00:00 UTC ve čtvrtek, 1. ledna 1970. Tyto hodiny představují přestupné sekundy a je standardní čas používaný po celém světě.

Časová pásma

Název Popis
choose Výčet, který určuje, jak vyřešit nejednoznačný převod na local_time .sys_time
local_info Poskytuje rozhraní nízké úrovně informace o výsledku převodu local_time na sys_time.
sys_info Poskytuje rozhraní nízké úrovně informace o výsledku převodu sys_time na local_time.
Třída time_zone Všechny přechody časových pásem pro konkrétní geografickou oblast.
Třída time_zone_link Alternativní název pro .time_zone
tzdb Struct Představuje kopii databáze časového pásma.
Třída tzdb_list Jednoúčelový seznam databází časových pásem
Třída zoned_time Párování a time_zone s time_point zadanou přesností.
zoned_traits Struct Používá se k přidružení jiného výchozího časového pásma k sadě zoned_timea volitelně namapování vlastního názvu na toto výchozí časové pásmo.

Výjimky

Název Popis
ambiguous_local_time Chyba vyvolaná při převodu local_time na a sys_time výsledek je nejednoznačný.
nonexistent_local_time Chyba vyvolaná při převodu local_time na a sys_time výsledek je čas, který neexistuje.

Funkce

Název Popis
ceil(duration) ceil Vrátí objekt duration jako zadaný typ.
ceil(time_point) ceil Vrátí objekt time_point jako zadaný typ.
clock_cast time_point Převede jedno hodiny na ekvivalent time_point pro jiné hodiny.
duration_cast Přetypuje duration objekt na zadaný typ.
floor(duration) floor Vrátí objekt duration jako zadaný typ.
floor(time_point) floor Vrátí objekt time_point jako zadaný typ.
from_stream() Parsujte vstupní datový proud do jednoho z typů časových std::chrono nebo intervalů, například day, month, yearweekdaya tak dále, pomocí zadaného formátu.
get_leap_second_info leap_second_info Získá strukturu.
is_am Určuje, hours zda je objekt AM.
is_pm Určuje, hours zda je objekt PM.
locate_zone Získá zadané časové pásmo.
make12 Vrátí 12hodinový hours tvar.
make24 Vrátí 24hodinový hours tvar.
round(duration) duration Vrátí objekt zaokrouhlený jako zadaný typ.
round(time_point) time_point Vrátí objekt zaokrouhlený jako zadaný typ.
time_point_cast Přetypuje time_point objekt na zadaný typ.

Související s časovým pásmem

Název Popis
current_zone Získá aktuální časové pásmo.
get_tzdb Získá první položku databáze časového pásma.
get_tzdb_list Získá seznam položek databáze časových pásem.
reload_tzdb Získá aktualizovanou položku databáze časového pásma.
remote_version Kontroluje aktualizovanou položku databáze časového pásma.

Operátory

Název Popis
operator- Odečítá nebo neguje různé <chrono> objekty.
operator!= Operátor nerovnosti, který se používá s různými <chrono> objekty.
operator modulo Operátor pro operace modulo s duration objekty.
operator* Operátor násobení pro duration objekty
operator/ Operátor dělení pro duration objekty
operator/ Poskytuje syntaxi pro vytváření kalendářních dat.
operator+ Přidejte do různých <chrono> objektů.
operator< Určuje, zda jsou různé <chrono> objekty menší než jiné.
operator<= Určuje, zda jsou různé <chrono> objekty menší nebo rovny jiné.
operator== Určuje, zda se různé <chrono> objekty vzájemně rovnají.
operator> Určuje, zda jsou různé <chrono> objekty větší než jiné.
operator>= Určuje, zda jsou různé <chrono> objekty větší nebo rovny jiné.

Typedefs

Další informace o typech poměrů, které se používají v následujících typechdefs, naleznete v tématu <ratio>.

Typy pohodlí duration

Název Popis
typedef duration<long long, nano> nanoseconds; Synonymum pro duration typ, který má období odškrtávku jedné miliardy (1/1 000 000 000) sekundy.
typedef duration<long long, micro> microseconds; Synonymum pro duration typ, který má období odškrtávku jednoho milionu (1/1 000 000) sekundy.
typedef duration<long long, milli> milliseconds; Synonymum pro duration typ, který má období odškrtávku 1/1 000 sekundy.
typedef duration<long long> seconds; Synonymum pro duration typ, který má interval 1 sekundy.
typedef duration<int, ratio<60>> minutes; Synonymum pro duration typ, který má období zaškrtnutí 1 minuty.
typedef duration<int, ratio<3600>> hours; Synonymum duration pro typ, který má období zaškrtnutí 1 hodiny.

Typy pohodlí time_point

Název Popis
file_time Synonymum pro time_point<file_clock, Duration>. Představuje pro time_point objekt file_clock. Zadáte Durationnapříklad file_time<seconds> ft;.
gps_seconds Synonymum pro gps_time<seconds>; počet sekund reprezentovaný time_point symbolem , který je přidružen k gps_clock.
gps_time Synonymum pro time_point<gps_clock, Duration>. Představuje pro time_point objekt gps_clock. Zadáte Durationnapříklad gps_time<milliseconds> gps;.
local_days Synonymum pro local_time<days>. Počet dní reprezentovaný žádným časovým pásmem time_point , který není přidružený k žádnému časovému pásmu.
local_seconds Synonymum pro local_time<seconds>.
local_time Synonymum pro time_point<local_t, Duration>. time_point Představuje místní čas, který ještě není přidružený k časovému pásmu. Zadáte Durationnapříklad local_time<seconds> lt;. A local_time je někde místní čas. Nejedná se o aktuální místní čas hodin počítače. Pouze když párujete s local_time časem time_zone , získáte bod v čase, který lze převést na čas UTC nebo čas v určitém časovém pásmu.
sys_days Synonymum pro sys_time<days>. Počet dnů od epochy system_clock, reprezentovaný time_point hodnotou, která je přidružena k system_clock.
sys_seconds Synonymum pro sys_time<seconds>. Počet neskočitých sekund od epochy system_clock (1. ledna 1970 00:00:00 UTC), reprezentované time_point tímto .system_clock
sys_time Synonymum pro time_point<system_clock, Duration>. Zadáte Durationnapříklad sys_time<seconds> st;. Představuje vrácený time_point z system_clock::now(). Představuje unixový čas, který blíže přibližuje čas UTC.
tai_seconds Synonymum pro tai_time<seconds>. Počet sekund reprezentovaný time_point hodnotou, která je přidružena k .tai_clock
tai_time Synonymum pro time_point<tai_clock, Duration>. DurationZadáte například tai_time<seconds> tt;. Představuje pro time_point objekt tai_clock.
utc_seconds Synonymum pro utc_time<seconds>;
utc_time Synonymum pro time_point<utc_clock, Duration>. DurationZadáte například utc_time<seconds> ut;. Představuje pro time_point objekt utc_clock.

Vlastnosti typu

Název Popis
clock_time_conversion Vlastnost, která určuje, jak převést z jedné hodiny na jinou time_point .
is_clock Zkontrolujte, jestli je typ hodin.
treat_as_floating_point Zkontrolujte, jestli duration se dá převést na jinou duration , která má jiné období zaškrtnutí.

Literály

(C++11) Hlavička <chrono> definuje následující uživatelsky definované literály , které můžete použít pro větší pohodlí, bezpečnost typů a udržovatelnost kódu. Tyto literály jsou definovány v vloženého literals::chrono_literals oboru názvů a jsou v oboru, pokud std::chrono je v oboru.

Deklarace Popis
hours operator "" h(unsigned long long Val) Určuje hodiny jako celočíselnou hodnotu.
duration<double, ratio<3600>> operator "" h(long double Val) Určuje hodiny jako hodnotu s plovoucí desetinou čárkou.
minutes (operator "" min)(unsigned long long Val) Určuje minuty jako celočíselnou hodnotu.
duration<double, ratio<60>> (operator "" min)( long double Val) Určuje minuty jako hodnota s plovoucí desetinou čárkou.
seconds operator "" s(unsigned long long Val) Určuje minuty jako celočíselnou hodnotu.
duration<double> operator "" s(long double Val) Určuje sekundy jako hodnotu s plovoucí desetinou čárkou.
milliseconds operator "" ms(unsigned long long Val) Určuje milisekundy jako celočíselnou hodnotu.
duration<double, milli> operator "" ms(long double Val) Určuje milisekundy jako hodnotu s plovoucí desetinnou čárkou.
microseconds operator "" us(unsigned long long Val) Určuje mikrosekundy jako celočíselnou hodnotu.
duration<double, micro> operator "" us(long double Val) Určuje mikrosekundy jako hodnotu s plovoucí desetinnou čárkou.
nanoseconds operator "" ns(unsigned long long Val) Určuje nanosekundy jako celočíselnou hodnotu.
duration<double, nano> operator "" ns(long double Val) Určuje nanosekundy jako hodnotu s plovoucí desetinnou čárkou.

Následující příklady ukazují, jak používat <chrono> literály:

constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;

Viz také

Referenční informace k souborům hlaviček