Condividi tramite


Classe tai_clock

Questo orologio riporta l'ora atomica internazionale dalle 00:00:00 di giovedì 1 gennaio 1958. Questo orologio non tiene conto dei secondi intercalari.

Sintassi

class tai_clock; // C++20

Osservazioni:

Questo orologio riporta International Atomic Time (TAI, dalla temps atomque internazionale francese). International Atomic Time usa una media ponderata di molti orologi atomici per tenere traccia dell'ora.

L'ora mantenuta dall'orologio TAI è diversa dall'ora UTC. La differenza è che un secondo bisestile viene occasionalmente aggiunto all'ora UTC per mantenere la differenza tra l'ora UTC e l'ora solare UT1 entro +- 0,9 secondi l'uno dall'altro. Una discrepanza si accumula gradualmente tra il tempo mantenuto da un orologio atomico e il tempo mantenuto misurando la rotazione della terra. Una discrepanza si accumula perché la velocità di rotazione terrestre è irregolare. Rallenta nel tempo di circa un secondo ogni 1,5 anni, pensando che a volte accelera anche. Il tempo TAI non tiene traccia di questa discrepanza. A partire da questo articolo, l'ora TAI è di 37 secondi prima dell'ora UTC. Questo è dovuto a una differenza iniziale di 10 secondi all'inizio del 1972, più i secondi bisestile che sono stati inseriti dal 1972.

L'epoca dell'orologio, o la data e l'ora da cui inizia a misurare l'ora, è 1958-01-01 00:00:00.

Membri

Nome Descrizione
from_utc Statico. Converte utc_time in tai_time.
now Statico. Restituisce l'ora atomica internazionale corrente.
to_utc Statico. Converte tai_time in utc_time.

Membri non membri

Nome Descrizione
from_stream Analizzare un oggetto tai_clock dal flusso specificato usando il formato specificato.
get_leap_second_info Ottenere informazioni sul fatto che l'ora specificata specifichi un'ora in cui è stato inserito un secondo bisestile e la somma di tutti i secondi intercalari compresi tra il 1° gennaio 1970 e la durata specificata.
operator<< Restituisce un oggetto tai_time nel flusso specificato.

Alias del tipo di praticità

Nome Descrizione
tai_clock::duration Nell'implementazione di Microsoft, è un sinonimo di duration<long long, ratio<1, 10'000'000>. Rappresenta una durata del tempo misurata in unità di 100 nanosecondi.
tai_clock::period Nell'implementazione di Microsoft, è un sinonimo di ratio<1, 10'000'000>. Rappresenta il tempo in secondi (100 nanosecondi) tra ogni tick nella durata.
tai_clock::rep Sinonimo del tipo (long long) utilizzato per rappresentare le unità integrali di questo orologio.tai_clock::duration
tai_clock::time_point Sinonimo di time_point<tai_clock>. Utilizzato per rappresentare un oggetto time_point per questo orologio.

Imparentato

Nome Descrizione
tai_time Sinonimo di template <class Duration> using tai_time = time_point<tai_clock, Duration>. Rappresenta un oggetto time_point per un oggetto tai_clock. Specificare .Duration Definito in std::chrono
tai_seconds Sinonimo di using tai_seconds = tai_time<seconds> Un conteggio di secondi, rappresentato da un time_point oggetto associato a un oggetto tai_clock. Definito in std::chrono

Costanti pubbliche

Nome Descrizione
tai_clock::is_steady constant Indica se il tipo di orologio è costante. Il valore è false.

Requisiti

Intestazione: <chrono> (da C++20)

Spazio dei nomi: std::chrono

Opzione del compilatore: /std:c++latest

from_utc

Metodo statico che converte un oggetto utc_time in un oggetto tai_time.

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

Parametri

t
Oggetto utc_time da convertire.

Valore restituito

Oggetto tai_time che rappresenta l'equivalente utc_time come t. Viene calcolato prendendo il tempo dal periodo dell'orologio UTC e aggiungendo 378691210s dove 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

to_utc

Metodo statico che converte un oggetto tai_time in un oggetto utc_time.

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

Parametri

t
Oggetto tai_time da convertire.

Valore restituito

Oggetto utc_time che rappresenta l'equivalente tai_time come t. Viene calcolato come utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s dove 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

is_steady

Valore statico che specifica se il tipo di clock è costante. Nell'implementazione di Microsoft è is_steady_constant false. Poiché tai_clock non è costante, non è possibile usare questo orologio per prendere il tempo prima di un evento, l'ora dopo un evento e sottrarrli per ottenere la durata dell'evento perché l'orologio può essere regolato durante tale tempo.

static const bool is_steady = false;

now

Metodo statico che restituisce l'ora TAI corrente.

static time_point now() noexcept;

Valore restituito

Oggetto time_point che rappresenta l'ora corrente. Il punto di tempo restituito è effettivamente from_utc(utc_clock::now()).

Vedi anche

<chrono>
file_clock class
high_resolution_clock
local_t Struct
steady_clock Struct
system_clock Struct
Classe utc_clock
Riferimento file di intestazione