Udostępnij za pośrednictwem


Klasa tai_clock

Ten zegar raportuje międzynarodowy czas atomowy od 00:00:00 w czwartek, 1 stycznia 1958. Ten zegar nie uwzględnia sekund przestępnych.

Składnia

class tai_clock; // C++20

Uwagi

Ten zegar raportuje Międzynarodowy Czas Atomowy (TAI, z francuskiego temps atomique international). Międzynarodowy Czas Atomowy używa średniej ważonej wielu zegarów atomowych do śledzenia czasu.

Czas przechowywany przez zegar TAI różni się od czasu UTC. Różnica polega na tym, że sekunda przestępna jest od czasu do czasu UTC dodawana do czasu UTC, aby zachować różnicę między czasem UTC a UT1 (czas słoneczny) w ciągu +- 0,9 sekund od siebie. Rozbieżność stopniowo nalicza się między czasem utrzymywanym przez zegar atomowy a czasem utrzymywanym przez pomiar obrotu ziemi. Rozbieżność jest naliczana, ponieważ prędkość rotacji ziemi jest nieregularna. Spowalnia w czasie o około jedną sekundę co 1,5 roku, myślał, że czasami przyspiesza. Czas TAI nie śledzi tej rozbieżności. W momencie pisania tego tekstu czas TAI wynosi 37 sekund przed czasem UTC. Wynika to z początkowej różnicy 10 sekund na początku 1972 roku, a także sekund przestępnych, które zostały wstawione od 1972 roku.

Epoka zegara lub data i godzina, od której rozpoczyna pomiar czasu, to 1958-01-01 00:00:00.

Elementy członkowskie

Nazwa/nazwisko opis
from_utc Statyczny. Konwertuje element na utc_time .tai_time
now Statyczny. Zwraca bieżący czas międzynarodowego niepodzielnego.
to_utc Statyczny. Konwertuje tai_time na utc_time.

Inne niż elementy członkowskie

Nazwa/nazwisko opis
from_stream Przeanalizuj element tai_clock z danego strumienia przy użyciu określonego formatu.
get_leap_second_info Uzyskaj informacje o tym, czy podany czas określa czas wstawienia sekundy przestępnej oraz sumę wszystkich sekund przestępnych między 1 stycznia 1970 r. a określonym czasem trwania.
operator<< tai_time Wyprowadź element do danego strumienia.

Aliasy typu wygody

Nazwa/nazwisko opis
tai_clock::duration W implementacji firmy Microsoft jest to synonim .duration<long long, ratio<1, 10'000'000> Reprezentuje czas trwania mierzony w jednostkach 100 nanosekund.
tai_clock::period W implementacji firmy Microsoft jest to synonim .ratio<1, 10'000'000> Reprezentuje czas w sekundach (100 nanosekund) między poszczególnymi znacznikami czasu trwania.
tai_clock::rep Synonim typu (long long) używanego do reprezentowania jednostek całkowitych w tym zegarze tai_clock::duration.
tai_clock::time_point Synonim dla elementu time_point<tai_clock>. Służy do reprezentowania elementu dla tego zegara time_point .

Powiązane

Nazwa/nazwisko opis
tai_time Synonim dla elementu template <class Duration> using tai_time = time_point<tai_clock, Duration>. Reprezentuje element time_point dla elementu tai_clock. Należy określić element Duration. Zdefiniowane w std::chrono
tai_seconds Synonim liczby using tai_seconds = tai_time<seconds> sekund reprezentowany przez element time_point skojarzony z elementem tai_clock. Zdefiniowane w std::chrono

Stałe publiczne

Nazwa/nazwisko opis
tai_clock::is_steady constant Wskazuje, czy typ zegara jest stały. Jego wartość to false.

Wymagania

Nagłówek: <chrono> (od C++20)

Przestrzeń nazw: std::chrono

Opcja kompilatora: /std:c++latest

from_utc

Metoda statyczna, która konwertuje utc_time element na .tai_time

template <class Duration>
static tai_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;

Parametry

t
Element utc_time do konwersji.

Wartość zwracana

Element tai_time reprezentujący odpowiednik utc_time elementu .t Jest obliczana, biorąc czas od epoki zegara UTC i dodając 378691210s , gdzie 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

to_utc

Metoda statyczna, która konwertuje tai_time element na .utc_time

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const tai_time<Duration>& t) noexcept;

Parametry

t
Element tai_time do konwersji.

Wartość zwracana

Element utc_time reprezentujący odpowiednik tai_time elementu .t Jest obliczana jako utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s miejsce 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

is_steady

Wartość statyczna określająca, czy typ zegara jest stały. W implementacji is_steady_constant firmy Microsoft jest .false Ponieważ tai_clock nie jest stały, nie można użyć tego zegara, aby zająć czas przed zdarzeniem, czas po zdarzeniu i odejmować je, aby uzyskać czas trwania zdarzenia, ponieważ zegar może być dostosowywany w tym czasie.

static const bool is_steady = false;

now

Metoda statyczna zwracająca bieżący czas TAI.

static time_point now() noexcept;

Wartość zwracana

time_point Obiekt reprezentujący bieżący czas. Zwracany punkt czasu jest skutecznie from_utc(utc_clock::now()).

Zobacz też

<chrono>
file_clock class
high_resolution_clock
local_t Struct
steady_clock Struct
system_clock Struct
Klasa utc_clock
Odwołanie do plików nagłówka