Skip to content

Commit 0f21693

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 727952e commit 0f21693

File tree

5 files changed

+494
-131
lines changed

5 files changed

+494
-131
lines changed

reference/chrono/gps_clock.html

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;chrono&#34;], &#34;namespace&#34;: [&#34;std::chrono&#34;], &#34;id-type&#34;: [&#34;class&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;ebc16ae7964ea9cd90c6aa05366f4cd940da7484&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;chrono&gt;\n\nnamespace chrono = std::chrono;\n\nint main()\n{\n chrono::gps_clock::time_point tp = chrono::gps_clock::now();\n std::cout &lt;&lt; tp &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;chrono&#34;, &#34;gps_clock&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;chrono&#34;], &#34;namespace&#34;: [&#34;std::chrono&#34;], &#34;id-type&#34;: [&#34;class&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;ebc16ae7964ea9cd90c6aa05366f4cd940da7484&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;chrono&gt;\n\nnamespace chrono = std::chrono;\n\nint main()\n{\n chrono::gps_clock::time_point tp = chrono::gps_clock::now();\n std::cout &lt;&lt; tp &lt;&lt; std::endl;\n}\n&#34;}, {&#34;id&#34;: &#34;fb70cc3e2d39898de1933df0f40790348f7f8cf0&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;chrono&gt;\n\nnamespace chrono = std::chrono;\nusing namespace std::literals::chrono_literals;\n\nint main() {\n auto utc_tp = chrono::utc_clock::from_sys(chrono::sys_days{2024y/1/1});\n auto gps_tp = chrono::gps_clock::from_utc(utc_tp);\n std::cout &lt;&lt; utc_tp &lt;&lt; \&#34; UTC\&#34; &lt;&lt; std::endl;\n std::cout &lt;&lt; gps_tp &lt;&lt; \&#34; GPS\&#34; &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;chrono&#34;, &#34;gps_clock&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2024-11-08T15:10:22">
192-
2024年11月08日 15時10分22秒
191+
<span itemprop="datePublished" content="2024-12-16T08:44:52">
192+
2024年12月16日 08時44分52秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -220,13 +220,16 @@
220220
</p>
221221
<h2>概要</h2>
222222
<p><code>gps_clock</code>は、GPS時間 (GPST) を表現するためのクロックである。この時刻系は、カーナビや携帯端末などで使用される。</p>
223+
<p>GPS時間ではうるう秒 (leap second) 補正が行われないため、2017年1月1日以降~2024年現在ではUTC (世界協定時) よりも18秒進んだ時間をとる。
224+
つまり 2024-01-01 00:00:18 GPS と 2024-01-01 00:00:00 UTC は等価である。</p>
223225
<p>このクラスの<code><a href="gps_clock/now.html">now()</a></code>静的メンバ関数は、標準では<code>noexcept(false)</code>である。実装が<code>noexcept(true)</code>である保証をしない限り、このクラスはTrivialClock要件を満たさない。</p>
224226
<h3>エポック</h3>
225227
<p>クロックごとの初期時間 (内部的にカウンタがあれば値ゼロ) をエポックと呼ぶ。</p>
226-
<p><code>gps_clock</code>のエポックは、1980年1月6日 (この年の最初の日曜日) 0時0分0秒である。</p>
228+
<p><code>gps_clock</code>のエポックは、1980年1月6日 (同年の最初の日曜日) 0時0分0秒である。</p>
227229
<h3>うるう秒の扱い</h3>
228-
<p>このクロックではうるう秒は挿入されず、うるう秒の数だけ時間が進む。そのため、UTCにうるう秒が挿入されるたびに、UTCはGPSよりも1秒ずつずれていく。</p>
229-
<p>GPS時間とTAI時間は19秒ずれていて、このずれは時間が経過しても変わらない。GPS時間のエポックが<code><a href="year/op_y.html">1958y</a>/<a href="month_constants.html">January</a>/1</code>、TAI時間のエポックが<code><a href="year/op_y.html">1980y</a>/<a href="month_constants.html">January</a>/<a href="weekday_constants.html">Sunday</a>[1]</code>であるが、1958年から1970年までのオフセットが10秒と、1970年から1980年までに挿入されたうるう秒が9秒あるためだ。</p>
230+
<p><code>gps_clock</code>ではうるう秒は考慮されず、UTCに対してうるう秒分だけ時間がシフトする。そのため、UTCに正のうるう秒が挿入されるたびに、UTC時間はGPS時間よりも1秒ずつ遅れていく。</p>
231+
<p>同じくうるう秒を考慮しない<a href="tai_clock.html">TAI時間</a>に対してGPS時間は19秒遅れており、このずれは時間が経過しても変わらない。これはTAI時間のエポックが<code><a href="year/op_y.html">1958y</a>/<a href="month_constants.html">January</a>/1</code>、GPS時間のエポックが<code><a href="year/op_y.html">1980y</a>/<a href="month_constants.html">January</a>/<a href="weekday_constants.html">Sunday</a>[1]</code>であるが、1958年から1970年までのオフセットが10秒と、1970年から1980年までに挿入されたうるう秒が9秒あるためだ。
232+
(1970年はTAI時間が定められた年である。)</p>
230233
<h2>メンバ関数</h2>
231234
<h3>静的メンバ関数</h3>
232235
<table border="1" bordercolor="#888" style="border-collapse:collapse">
@@ -305,21 +308,41 @@ <h2>メンバ定数</h2>
305308
</tbody>
306309
</table>
307310
<h2></h2>
311+
<h3>例1: 現在GPS時間</h3>
308312
<p><div class="yata" id="ebc16ae7964ea9cd90c6aa05366f4cd940da7484"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
309313
<span class="cp">#include</span> <span class="cpf"><a href="../chrono.html">&lt;chrono&gt;</a></span><span class="cp"></span>
310314

311315
<span class="k">namespace</span> <span class="n">chrono</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">chrono</span><span class="p">;</span>
312316

313317
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
314318
<span class="p">{</span>
315-
<span class="n">chrono</span><span class="o">::</span><span class="n">gps_clock</span><span class="o">::</span><span class="n">time_point</span> <span class="n">tp</span> <span class="o">=</span> <span class="n">chrono</span><span class="o">::</span><span class="n">gps_clock</span><span class="o">::</span><span class="n"><a href="gps_clock/now.html">now()</a></span><span class="p">;</span>
319+
<span class="n"><span style="color:#ff0000">chrono::gps_clock</span></span><span class="o">::</span><span class="n">time_point</span> <span class="n">tp</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">chrono::gps_clock</span></span><span class="o">::</span><span class="n"><a href="gps_clock/now.html">now()</a></span><span class="p">;</span>
316320
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">tp</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
317321
<span class="p">}</span>
318322
</code></pre></div>
319323
</div></p>
320-
<h3>出力例</h3>
324+
<h4>出力例</h4>
321325
<p><pre><code>2019-10-24 11:15:37.493236171
322326
</code></pre></p>
327+
<h3>例2: うるう秒の影響</h3>
328+
<p><div class="yata" id="fb70cc3e2d39898de1933df0f40790348f7f8cf0"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
329+
<span class="cp">#include</span> <span class="cpf"><a href="../chrono.html">&lt;chrono&gt;</a></span><span class="cp"></span>
330+
331+
<span class="k">namespace</span> <span class="n">chrono</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">chrono</span><span class="p">;</span>
332+
<span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="o">::</span><span class="n">literals</span><span class="o">::</span><span class="n">chrono_literals</span><span class="p">;</span>
333+
334+
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
335+
<span class="k">auto</span> <span class="n">utc_tp</span> <span class="o">=</span> <span class="n">chrono</span><span class="o">::</span><span class="n">utc_clock</span><span class="o">::</span><span class="n"><a href="utc_clock/from_sys.html">from_sys</a></span><span class="p">(</span><span class="n">chrono</span><span class="o">::</span><span class="n">sys_days</span><span class="p">{</span><span class="mi">2024</span><span class="n">y</span><span class="o">/</span><span class="mi">1</span><span class="o">/</span><span class="mi">1</span><span class="p">});</span>
336+
<span class="k">auto</span> <span class="n">gps_tp</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">chrono::gps_clock</span></span><span class="o">::</span><span class="n"><a href="gps_clock/from_utc.html">from_utc</a></span><span class="p">(</span><span class="n">utc_tp</span><span class="p">);</span>
337+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">utc_tp</span> <span class="o">&lt;&lt;</span> <span class="s">" UTC"</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
338+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">gps_tp</span> <span class="o">&lt;&lt;</span> <span class="s">" GPS"</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
339+
<span class="p">}</span>
340+
</code></pre></div>
341+
</div></p>
342+
<h4>出力</h4>
343+
<p><pre><code>2024-01-01 00:00:00 UTC
344+
2024-01-01 00:00:18 GPS
345+
</code></pre></p>
323346
<h2>バージョン</h2>
324347
<h3>言語</h3>
325348
<ul>
@@ -328,7 +351,7 @@ <h3>言語</h3>
328351
<h3>処理系</h3>
329352
<ul>
330353
<li><a href="../../implementation.html#clang">Clang</a>: 9.0 <span aria-label="未実装" role="img" title="未実装"></span></li>
331-
<li><a href="../../implementation.html#gcc">GCC</a>: 9.2 <span aria-label="未実装" role="img" title="未実装"></span>, 13.1 <span aria-label="検証済" role="img" title="検証済"></span></li>
354+
<li><a href="../../implementation.html#gcc">GCC</a>: 9.2 <span aria-label="未実装" role="img" title="未実装"></span>, 13.2 <span aria-label="検証済" role="img" title="検証済"></span></li>
332355
<li><a href="../../implementation.html#visual_cpp">Visual C++</a>: 2019 Update 3 <span aria-label="未実装" role="img" title="未実装"></span></li>
333356
</ul>
334357
<h2>参照</h2>

reference/chrono/make24.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ <h2>例</h2>
239239
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span> <span class="nb">false</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">0h</a></span><span class="p">);</span>
240240

241241
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">);</span>
242-
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1L</span><span class="n">OCQmbHXbQUBtaqyFpjqvhZYFshzQfjS</span><span class="p">);</span>
242+
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">);</span>
243243
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">15h</a></span><span class="p">);</span>
244244
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">11h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">23h</a></span><span class="p">);</span>
245245
<span class="p">}</span>

0 commit comments

Comments
 (0)