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_time を gps_time に変換します。 |
now |
静的。 GPS の現在の時間を返します。 |
to_utc |
静的。 gps_time を utc_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_clock の time_point を表す場合に使用します。 Duration を指定します。 std::chrono に定義されています |
gps_seconds |
gps_clock に関連付けられている time_point によって表される、秒の using gps_seconds = gps_time<seconds>; A カウントの同意語です。 std::chrono に定義されています |
パブリック定数
名前 | 説明 |
---|---|
gps_clock::is_steady 定数 |
クロック型が一定かどうかを示します。 その値は false です。 |
要件
Header: <chrono>
(C++20 以降)
名前空間: std::chrono
コンパイラ オプション: /std:c++latest
from_utc
utc_time
を gps_time
に変換する静的メソッド。
template<class Duration>
static gps_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;
パラメーター
t
変換する utc_time
。
戻り値
gps_time
utc_time
t
と同じ時点に設定されます。 これは、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_time
を utc_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_clock
と gps_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
クラス
ヘッダー ファイル リファレンス