<chrono>

Uwzględnij nagłówek <chrono> standardowy, aby zdefiniować klasy i funkcje reprezentujące czas trwania i wystąpienia czasu oraz manipulowanie nimi.

Począwszy od programu Visual Studio 2015, implementacja steady_clock programu została zmieniona tak, aby spełniała wymagania standardowe języka C++ dotyczące steadiness i monotonicity:

  • steady_clock jest teraz oparta na QueryPerformanceCounter()
  • high_resolution_clockjest teraz definicją typedef dla steady_clock W implementacji steady_clock::time_point języka Microsoft C++ jest teraz elementem typedef .chrono::time_point<steady_clock> Jednak niekoniecznie jest to przypadek innych implementacji.

Wymagania

Nagłówka:<chrono>

Ustawodawcy regionalni od czasu do czasu wprowadzają zmiany w strefach czasowych, a międzynarodowy organ standardów określa, kiedy należy uwzględnić nowe sekundy przestępne. Baza danych tych zmian została dodana do systemu Windows 10. Szczególnie:

Funkcja Wersja klienta Wersja serwera
Przestąp drugie aktualizacje bazy danych Windows 10 w wersji 1809 lub nowszej Windows Server 2019 lub nowszy
Obsługa stref czasowych Windows 10 w wersji 1903/19H1 lub nowszej Windows Server 2022 lub nowszy

Korzystanie z obiektów strefy czasowej w starszych wersjach systemu Windows powoduje błąd środowiska uruchomieniowego.

Obszaru nazw:std

Typy calendryczne

Nazwa/nazwisko opis
common_type Struct Opisuje specjalizacje szablonu common_type klasy dla wystąpień duration elementów i time_point.
Klasa day Dzień miesiąca. Na przykład 25 dzień miesiąca.
Klasa duration Interwał czasu.
duration_values Struct Zawiera określone wartości parametru Repszablonu duration .
Klasa hh_mm_ss Dzieli czas na duration godziny:minuty:sekundy.
last_spec Służy do wskazywania ostatniego elementu w miesiącu, takiego jak ostatni dzień tygodnia miesiąca (ostatni wtorek lutego 2020 r.) lub ostatni dzień miesiąca (ostatni dzień kwietnia 2019 r.).
Klasa leap_second Data i wartość wstawionego przestępnego sekundy.
leap_second_info Struct Dane zwrócone przez element get_leap_second_info.
Klasa month Miesiąc roku. Na przykład lipiec.
Klasa month_day Określony dzień określonego miesiąca. Na przykład 30 lipca.
Klasa month_day_last Ostatni dzień miesiąca.
Klasa month_weekday Nth dni powszednie określonego miesiąca.
Klasa month_weekday_last Nth dni powszednie określonego miesiąca.
Klasa time_point Punkt w czasie.
Klasa weekday Dzień tygodnia.
Klasa weekday_last Ostatni dzień tygodnia miesiąca.
Klasa weekday_indexed Łączy dzień tygodnia z indeksem, który reprezentuje dzień tygodnia miesiąca.
Klasa year Rok w kalendarzu gregoriańskim.
Klasa year_month Rok i miesiąc. Nie określono dnia.
Klasa year_month_day Rok, miesiąc i dzień.
Klasa year_month_day_last Ostatni dzień określonego miesiąca i roku.
Klasa year_month_weekday Określony rok, miesiąc i nth dzień tygodnia miesiąca.
Klasa year_month_weekday_last Określony rok, miesiąc i ostatni dzień tygodnia miesiąca.

Zegary

Nazwa/nazwisko opis
Klasa file_clock Alias zegara używanego dla std::filesystem::file_time_typeelementu , który służy do wyrażania sygnatur czasowych plików.
Klasa gps_clock Zegar, który utrzymuje czas GPS. Czas miar rozpoczynający się od pierwszej niedzieli stycznia 1980 o 00:00:00 UTC.
high_resolution_clock Struct Zegar z nanosekundowym okresem kleszcza.
local_t Struct Pseudo-zegar używany jako argument do szablonu time_point , aby wskazać, że time_point reprezentuje czas lokalny.
steady_clock Struct Zegar steady . Ten zegar jest preferowany do pomiaru interwałów czasu.
system_clock Struct Zegar oparty na zegarze w czasie rzeczywistym systemu.
Klasa tai_clock Measures International Atomic Time (TAI) począwszy od czwartku, 1 stycznia 1958 o 00:00:00. Ten zegar nie uwzględnia sekund przestępnych.
Klasa utc_clock Mierzy czas od 00:00:00 UTC w czwartek, 1 stycznia 1970 r. Ten zegar odpowiada za sekundy przestępne i jest standardem czasu używanym na całym świecie.

Strefy czasowe

Nazwa/nazwisko opis
choose Wyliczenie określające sposób rozpoznawania niejednoznacznej local_time konwersji elementu na .sys_time
local_info Udostępnia interfejs niskiego poziomu do informacji o strefie czasowej o wyniku konwersji obiektu local_time na sys_time.
sys_info Udostępnia interfejs niskiego poziomu do informacji o strefie czasowej o wyniku konwersji obiektu sys_time na local_time.
Klasa time_zone Wszystkie przejścia strefy czasowej dla określonego obszaru geograficznego.
Klasa time_zone_link Alternatywna nazwa elementu time_zone.
tzdb Struct Reprezentuje kopię bazy danych strefy czasowej.
Klasa tzdb_list Pojedyncza lista baz danych stref czasowych.
Klasa zoned_time Parowanie elementu time_zone i z time_point określoną precyzją.
zoned_traits Struct Służy do kojarzenia innej domyślnej strefy czasowej z elementem zoned_timei opcjonalnie mapowania niestandardowej nazwy na tę domyślną strefę czasową.

Wyjątki

Nazwa/nazwisko opis
ambiguous_local_time Błąd zgłaszany, gdy element local_time jest konwertowany na element sys_time , a wynik jest niejednoznaczny.
nonexistent_local_time Błąd zgłaszany, gdy element local_time jest konwertowany na element sys_time , a wynikiem jest czas, który nie istnieje.

Funkcje

Nazwa/nazwisko opis
ceil(duration) ceilduration Zwraca obiekt jako określony typ.
ceil(time_point) ceiltime_point Zwraca obiekt jako określony typ.
clock_cast Konwertuje zegar time_point z jednego zegara na odpowiednik time_point innego zegara.
duration_cast Rzutuje duration obiekt na określony typ.
floor(duration) floorduration Zwraca obiekt jako określony typ.
floor(time_point) floortime_point Zwraca obiekt jako określony typ.
from_stream() Przeanalizuj strumień wejściowy w jeden z std::chrono typów czasu lub interwałów, takich jak day, month, weekday, yeari tak dalej, przy użyciu określonego formatu.
get_leap_second_info leap_second_info Pobiera strukturę.
is_am hours Czy obiekt to AM.
is_pm hours Czy obiekt ma wartość PM.
locate_zone Pobiera określoną strefę czasową.
make12 Zwraca formularz hours w ciągu 12 godzin.
make24 Zwraca formularz hours w ciągu 24 godzin.
round(duration) duration Zwraca obiekt zaokrąglony jako określony typ.
round(time_point) time_point Zwraca obiekt zaokrąglony jako określony typ.
time_point_cast Rzutuje time_point obiekt na określony typ.

Powiązane ze strefą czasową

Nazwa/nazwisko opis
current_zone Pobiera bieżącą strefę czasową.
get_tzdb Pobiera pierwszy wpis bazy danych strefy czasowej.
get_tzdb_list Pobiera listę wpisów bazy danych strefy czasowej.
reload_tzdb Pobiera zaktualizowany wpis bazy danych strefy czasowej.
remote_version Sprawdza zaktualizowany wpis bazy danych strefy czasowej.

Operatory

Nazwa/nazwisko opis
operator- Odejmowanie lub negowanie różnych <chrono> obiektów.
operator!= Operator nierówności używany z różnymi <chrono> obiektami.
operator modulo Operator dla operacji modulo na duration obiektach.
operator* Operator mnożenia obiektów duration .
operator/ Operator dzielenia obiektów duration .
operator/ Zawiera składnię umożliwiającą tworzenie dat kalendarza.
operator+ Dodaj do różnych <chrono> obiektów.
operator< Określa, czy różne <chrono> obiekty są mniejsze niż inne.
operator<= Określa, czy różne <chrono> obiekty są mniejsze, czy równe innemu.
operator== Określa, czy różne <chrono> obiekty są ze sobą równe.
operator> Określa, czy różne <chrono> obiekty są większe niż inne.
operator>= Określa, czy różne <chrono> obiekty są większe lub równe innemu.

Typedefs

Aby uzyskać więcej informacji na temat typów współczynników używanych w następujących definicjach typów, zobacz <ratio>.

Typy wygody duration

Nazwa/nazwisko opis
typedef duration<long long, nano> nanoseconds; Synonim typu duration , który ma okres znaczników o wartości miliardowej (1/1 000 000 000 000) sekundy.
typedef duration<long long, micro> microseconds; Synonim typu duration , który ma okres znaczników o wartości jednej milionowej (1/1000 000) sekundy.
typedef duration<long long, milli> milliseconds; Synonim typu duration , który ma okres tykania jednego tysięcy (1/1000) sekundy.
typedef duration<long long> seconds; Synonim typu duration , który ma kropkę 1 sekundę.
typedef duration<int, ratio<60>> minutes; Synonim typu duration , który ma kropkę 1 minutę.
typedef duration<int, ratio<3600>> hours; Synonim typu duration , który ma okres znaczników o wartości 1 godziny.

Typy wygody time_point

Nazwa/nazwisko opis
file_time Synonim dla elementu time_point<file_clock, Duration>. Reprezentuje element time_point dla elementu file_clock. Należy określić wartość Duration, na przykład file_time<seconds> ft;.
gps_seconds Synonim liczby gps_time<seconds>; sekund reprezentowany przez element time_point skojarzony z elementem gps_clock.
gps_time Synonim dla elementu time_point<gps_clock, Duration>. Reprezentuje element time_point dla elementu gps_clock. Należy określić wartość Duration, na przykład gps_time<milliseconds> gps;.
local_days Synonim dla elementu local_time<days>. Liczba dni reprezentowana przez element, który nie jest skojarzony z żadną strefą time_point czasową.
local_seconds Synonim dla elementu local_time<seconds>.
local_time Synonim dla elementu time_point<local_t, Duration>. time_point Reprezentuje czas lokalny, który nie jest jeszcze skojarzony ze strefą czasową. Należy określić wartość Duration, na przykład local_time<seconds> lt;. A local_time to czas lokalny gdzieś. Nie jest to bieżąca godzina lokalna zegara komputera. Tylko wtedy, gdy parujesz element local_time z wartością time_zone , uzyskasz punkt w czasie, który można przekonwertować na czas UTC lub godzinę w określonej strefie czasowej.
sys_days Synonim dla elementu sys_time<days>. Liczba dni od epoki system_clock reprezentowana przez element time_point skojarzony z elementem system_clock.
sys_seconds Synonim dla elementu sys_time<seconds>. Liczba sekund bez przestępnych od epoki system_clock (1 stycznia 1970 00:00:00 UTC), reprezentowana przez element time_point skojarzony z elementem system_clock.
sys_time Synonim dla elementu time_point<system_clock, Duration>. Należy określić wartość Duration, na przykład sys_time<seconds> st;. Reprezentuje zwrócony time_point element z system_clock::now(). Reprezentuje czas systemu Unix, który jest ściśle przybliżony czas UTC.
tai_seconds Synonim dla elementu tai_time<seconds>. Liczba sekund reprezentowana przez element time_point skojarzony z elementem tai_clock.
tai_time Synonim dla elementu time_point<tai_clock, Duration>. Należy podać element Duration, na przykład tai_time<seconds> tt;. Reprezentuje element time_point dla elementu tai_clock.
utc_seconds Synonim dla utc_time<seconds>;
utc_time Synonim dla elementu time_point<utc_clock, Duration>. Należy podać element Duration, na przykład utc_time<seconds> ut;. Reprezentuje element time_pointdla elementu utc_clock.

Cechy typów

Nazwa/nazwisko opis
clock_time_conversion Cecha określająca sposób konwertowania z jednego zegara time_point na inny.
is_clock Sprawdź, czy typ jest zegarem.
treat_as_floating_point Sprawdź, czy duration element można przekonwertować na inny duration , który ma inny okres znaczników.

Literały

(C++11) Nagłówek <chrono> definiuje następujące literały zdefiniowane przez użytkownika, których można użyć w celu zapewnienia większej wygody , bezpieczeństwa typu i możliwości konserwacji kodu. Te literały są definiowane w wbudowanej literals::chrono_literals przestrzeni nazw i znajdują się w zakresie, gdy std::chrono znajduje się w zakresie.

Deklaracji opis
hours operator "" h(unsigned long long Val) Określa godziny jako wartość całkowitą.
duration<double, ratio<3600>> operator "" h(long double Val) Określa godziny jako wartość zmiennoprzecinkową.
minutes (operator "" min)(unsigned long long Val) Określa minuty jako wartość całkowitą.
duration<double, ratio<60>> (operator "" min)( long double Val) Określa minuty jako wartość zmiennoprzecinkową.
seconds operator "" s(unsigned long long Val) Określa minuty jako wartość całkowitą.
duration<double> operator "" s(long double Val) Określa sekundy jako wartość zmiennoprzecinkową.
milliseconds operator "" ms(unsigned long long Val) Określa milisekundy jako wartość całkowitą.
duration<double, milli> operator "" ms(long double Val) Określa milisekundy jako wartość zmiennoprzecinkową.
microseconds operator "" us(unsigned long long Val) Określa mikrosekundy jako wartość całkowitą.
duration<double, micro> operator "" us(long double Val) Określa mikrosekundy jako wartość zmiennoprzecinkową.
nanoseconds operator "" ns(unsigned long long Val) Określa nanosekundy jako wartość całkowitą.
duration<double, nano> operator "" ns(long double Val) Określa nanosekundy jako wartość zmiennoprzecinkową.

W poniższych przykładach pokazano, jak używać <chrono> literałów:

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

Zobacz też

Odwołanie do plików nagłówka