次の方法で共有


gps_clock クラス

GPS (Global Positioning System) 時間のクロック。

構文

class gps_clock; // C++20

解説

このクロックは、1980 年 1 月 6 日日曜日 00:00:00 UTC 以降の時刻を測定します。

このクロックでは、うるう秒は考慮されません。 UTC 時刻にうるう秒が追加されるたびに、UTC は GPS 時間よりさらに秒遅れになります。

GPS 時間が TAI 時間より 19 秒遅れているのは、1972 年に TAI 時間に 10 秒を追加してその時点まで累積されたうるう秒を考慮し、1970 年から 1980 年の間に TAI 時間にさらに 9 秒のうるう秒を追加したためです。

メンバー

名前 説明
from_utc 静的。 utc_timegps_timeに変換します。
now 静的。 GPS の現在の時間を返します。
to_utc 静的。 gps_timeutc_timeに変換します。

非メンバー

名前 説明
from_stream 指定した形式を使用して、指定したストリームから gps_time を解析します。
operator<< 指定したストリームに gps_time を出力します。

便利な型のエイリアス

名前 説明
gps_clock::duration Microsoft の実装では、duration<long long, ratio<1, 10'000'000> の同意語です。 これは、100 ナノ秒単位で測定された時間を表します。
gps_clock::period Microsoft の実装では、ratio<1, 10'000'000> の同意語です。 期間内の時計の各ティック間の数分の 1 秒単位の時間 (100 ナノ秒) で表します。
gps_clock::rep このクロックの gps_clock::duration の整数単位を表す型 (long long) の同意語です。
gps_clock::time_point time_point<gps_clock> と同義。 このクロックの time_point を表す場合に使用します。

関連項目

名前 説明
gps_time template <class Duration> using gps_time = time_point<gps_clock, Duration> と同義。 gps_clocktime_point を表す場合に使用します。 Duration を指定します。 std::chrono に定義されています
gps_seconds gps_clock に関連付けられている time_point によって表される、秒の using gps_seconds = gps_time<seconds>; A カウントの同意語です。 std::chrono に定義されています

パブリック定数

名前 説明
gps_clock::is_steady 定数 クロック型が一定かどうかを示します。 その値は false です。

必要条件

ヘッダー:<chrono> (C++20 以降)

名前空間std::chrono:

コンパイラ オプション:/std:c++latest

from_utc

utc_timegps_time に変換する静的メソッド。

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

パラメーター

t
変換する utc_time

戻り値

utc_timet と同じ時点に設定された gps_time。 これは、gps_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 315964809s として計算されます。ここでは 315964809s == sys_days{1980y/January/Sunday[1]} - sys_days{1970y/January/1} + 9s です。 utc_clock エポックと gps_clock エポックの間の秒数です。

to_utc

gps_timeutc_time に変換する静的メソッド。

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

パラメーター

t
変換する gps_time

戻り値

gps_time と同じ時点に設定された utc_time。 これは、gps_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} + 315964809s として計算されます。ここでは 315964809s == sys_days{1980y/January/Sunday[1]} - sys_days{1970y/January/1} + 9s です。 これは、utc_clockgps_clock のエポックの間の秒数です。

is_steady

クロックの型が安定しているかどうかを指定する静的な値。 Microsoft の実装では、is_steady_constant は常に false です。 gps_clock は一定ではないため、このクロックを使用してイベントの前の時間、イベントの後の時間を確実に取得し、それらを減算してイベントの期間を取得することはできません。これは、その間にクロックが調整されている可能性があるためです。

static const bool is_steady = system_clock::is_steady; // system_clock::is_steady equals false

now

現在の GPS 時刻を返す静的メソッド。

static time_point now() noexcept;

戻り値

現在時刻を表す time_point オブジェクト。 返される時点は、実質的には from_utc(utc_clock::now()) です。

関連項目

<chrono>
file_clock class
high_resolution_clock
local_t 構造体
steady_clock 構造体
system_clock 構造体
tai_clock クラス
ヘッダー ファイル リファレンス