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