Classe tai_clock
Este relógio relata o tempo atômico internacional desde as 00:00:00 de quinta-feira, 1º de janeiro de 1958. O relógio não contabiliza segundos intercalares.
Sintaxe
class tai_clock; // C++20
Comentários
Este relógio relata o Tempo Atômico Internacional (TAI, do francês temps atomique international). O Tempo Atômico Internacional usa uma média ponderada de muitos relógios atômicos para acompanhar o tempo.
O tempo mantido pelo relógio TAI é diferente do tempo UTC. A diferença é que um segundo intercalar é adicionado ocasionalmente ao horário UTC para manter a diferença entre o UTC e o UT1 (tempo solar) em +- 0,9 segundo. Uma discrepância se acumula gradualmente entre o tempo mantido por um relógio atômico e o tempo mantido medindo a rotação da Terra. A discrepância se acumula porque a velocidade de rotação da Terra é irregular. Ele desacelera ao longo do tempo em cerca de um segundo a cada 1,5 anos, embora às vezes também acelere. O tempo TAI não acompanha essa discrepância. No momento da redação deste artigo, o tempo de TAI está 37 segundos à frente do tempo UTC. Isso ocorre devido a uma diferença inicial de 10 segundos no início de 1972, além dos segundos intercalares que foram inseridos desde 1972.
A época do relógio, ou a data e a hora da qual ele começa a medir a hora, é 1958-01-01 00:00:00
.
Membros
Nome | Descrição |
---|---|
from_utc |
Estático. Converte uma utc_time em uma tai_time . |
now |
Estático. Retorna o tempo atômico internacional atual. |
to_utc |
Estático. Converte tai_time em utc_time . |
Não membros
Nome | Descrição |
---|---|
from_stream |
Analise um tai_clock do fluxo fornecido usando o formato especificado. |
get_leap_second_info |
Obtenha informações sobre se o tempo fornecido especifica uma hora em que um segundo intercalar foi inserido, e a soma de todos os segundos intercalares entre 1º de janeiro de 1970 e a duração especificada. |
operator<< |
Gerar um tai_time para o fluxo fornecido. |
Aliases de tipo de conveniência
Nome | Descrição |
---|---|
tai_clock::duration |
Na implementação da Microsoft, isso é sinônimo de duration<long long, ratio<1, 10'000'000> . Isso representa uma duração de tempo medida em unidades de 100 nanossegundos. |
tai_clock::period |
Na implementação da Microsoft, isso é sinônimo de ratio<1, 10'000'000> . Representa o tempo em segundos (100 nanossegundos) entre cada tique na duração. |
tai_clock::rep |
Um sinônimo do tipo (long long ) usado para representar as unidades integrais no relógio tai_clock::duration . |
tai_clock::time_point |
Um sinônimo de time_point<tai_clock> . Usado para representar um time_point para esse relógio. |
Relacionado
Nome | Descrição |
---|---|
tai_time |
Um sinônimo de template <class Duration> using tai_time = time_point<tai_clock, Duration> . Representa um time_point para um tai_clock . Você pode especificar o Duration . Definido em std::chrono |
tai_seconds |
Um sinônimo para using tai_seconds = tai_time<seconds> Uma contagem de segundos, representada por um time_point associado a um tai_clock . Definido em std::chrono |
Constantes públicas
Nome | Descrição |
---|---|
tai_clock::is_steady constant |
Indica se o tipo de relógio é estável. Seu valor é false . |
Requisitos
Cabeçalho: <chrono>
(desde C++20)
Namespace: std::chrono
Opção do compilador: /std:c++latest
from_utc
Método estático que converte um utc_time
em um tai_time
.
template <class Duration>
static tai_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;
Parâmetros
t
O utc_time
a ser convertido.
Valor retornado
Um tai_time
que representa o utc_time
equivalente como t
. É calculado usando o tempo desde a época do relógio UTC e adicionando 378691210s
, em que 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s
to_utc
Método estático que converte um tai_time
em um utc_time
.
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const tai_time<Duration>& t) noexcept;
Parâmetros
t
O tai_time
a ser convertido.
Valor de retorno
Um utc_time
que representa o tai_time
equivalente como t
. É calculado como utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s
, em que 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s
is_steady
Valor estático que especifica se o tipo de relógio é estável. Na implementação da Microsoft, is_steady_constant
é false
. Como o tai_clock
não é estável, não é possível usar esse relógio para medir o tempo antes de um evento, o tempo após um evento e subtraí-los para obter a duração do evento porque o relógio pode ser ajustado durante esse tempo.
static const bool is_steady = false;
now
Método estático que retorna a hora TAI atual.
static time_point now() noexcept;
Valor de retorno
Um objeto time_point
que representa a hora atual. O ponto de tempo retornado é efetivamente from_utc(utc_clock::now())
.
Confira também
<chrono>
file_clock class
high_resolution_clock
Structlocal_t
Structsteady_clock
Structsystem_clock
utc_clock
classe
Referência de Arquivos de Cabeçalho