Partilhar via


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