Compartir vía


Clase tai_clock

Este reloj informa de la hora atómica internacional desde las 00:00:00 del jueves, 1 de enero de 1958. Este reloj no tiene en cuenta los segundos intercalares.

Sintaxis

class tai_clock; // C++20

Comentarios

Este reloj informa del tiempo atómico internacional (TAI, del francés temps atomique international). El tiempo atómico internacional utiliza un promedio ponderado de muchos relojes atómicos para realizar un seguimiento del tiempo.

El tiempo mantenido por el reloj TAI es diferente de la hora UTC. La diferencia es que ocasionalmente se agrega un segundo intercalar a la hora UTC para mantener la diferencia entre la hora UTC y la UT1 (tiempo solar) dentro de +- 0,9 segundos entre sí. Se acumula gradualmente una discrepancia entre el tiempo registrado por un reloj atómico y el tiempo registrado mediante la medición de la rotación de la tierra. La discrepancia se acumula porque la velocidad de rotación de la tierra es irregular. Se ralentiza a lo largo del tiempo en aproximadamente un segundo cada 1,5 años, pero también se acelera algunas veces. El TAI no realiza un seguimiento de esta discrepancia. Al escribir esto, la hora TAI va 37 segundos por delante de la hora UTC. Esto se debe a una diferencia inicial de 10 segundos al inicio de 1972, además de los segundos intercalares que se han insertado desde 1972.

La época del reloj, o la fecha y hora desde las que comienza a medir la hora, es 1958-01-01 00:00:00.

Miembros

Nombre Descripción
from_utc Estática. Convierte utc_time en tai_time.
now Estática. Devuelve la hora atómica internacional actual.
to_utc Estática. Convierte tai_time a utc_time.

No miembros

Nombre Descripción
from_stream Analiza un tai_clock desde la secuencia especificada con el formato indicado.
get_leap_second_info Obtenga información sobre si el tiempo proporcionado especifica una hora en la que se insertó un segundo intercalar y la suma de todos los segundos intercalares entre el 1 de enero de 1970 y la duración especificada.
operator<< Genera un elemento tai_time en la secuencia especificada.

Alias de tipo de conveniencia

Nombre Descripción
tai_clock::duration En la implementación de Microsoft es un sinónimo de duration<long long, ratio<1, 10'000'000>. Representa una duración de tiempo medida en unidades de 100 nanosegundos.
tai_clock::period En la implementación de Microsoft es un sinónimo de ratio<1, 10'000'000>. Representa el tiempo en segundos (100 nanosegundos) entre cada tic de la duración.
tai_clock::rep Un sinónimo del tipo (long long) usado para representar las unidades integrales de este reloj tai_clock::duration.
tai_clock::time_point Sinónimo de time_point<tai_clock>. Se usa para representar un time_point para este reloj.

Relacionados

Nombre Descripción
tai_time Sinónimo de template <class Duration> using tai_time = time_point<tai_clock, Duration>. Representa un time_point para un tai_clock. Especifique Duration. Definido en std::chrono
tai_seconds Un sinónimo de using tai_seconds = tai_time<seconds> Un recuento de segundos, representado por un time_point que está asociado con un tai_clock. Definido en std::chrono

Constantes públicas

Nombre Descripción
tai_clock::is_steady constant Indica si el tipo de reloj es constante. Su valor es false.

Requisitos

Encabezado: <chrono> (desde C++20)

Espacio de nombres: std::chrono

Opción del compilador: /std:c++latest

from_utc

Método estático que convierte un utc_time en un tai_time.

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

Parámetros

t
Objeto utc_time que se va a convertir.

Valor devuelto

Un tai_time que representa el equivalente utc_time como t. Se calcula tomando el tiempo desde la época del reloj UTC y agregando 378691210s donde 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

to_utc

Método estático que convierte un tai_time en un utc_time.

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

Parámetros

t
Objeto tai_time que se va a convertir.

Valor devuelto

Un utc_time que representa el equivalente tai_time como t. Se calcula como utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s donde 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

is_steady

Valor estático que especifica si el tipo del reloj es constante. En la implementación de Microsoft, is_steady_constant es false. Dado que tai_clock no es estable, no puede usar este reloj para tomar el tiempo antes de un evento, el tiempo después de un evento y restarlos para obtener la duración del evento, porque el reloj podría ajustarse durante ese tiempo.

static const bool is_steady = false;

now

Método estático que devuelve la hora TAI actual.

static time_point now() noexcept;

Valor devuelto

Un objeto time_point que representa el tiempo actual. El punto de tiempo devuelto es efectivamente from_utc(utc_clock::now()).

Consulte también

<chrono>
file_clock class
high_resolution_clock
Estructura local_t
Estructura steady_clock
Estructura system_clock
Clase utc_clock
Referencia de archivos de encabezado