削除された内容 追加された内容
printfで表示する際の型を修正
編集の要約なし
1行目:
{{DISPLAYTITLE:time_t}}
<code>'''time_t'''</code>型は、[[システム時刻]]を表現あるいは保存するために[[標準Cライブラリ]]が定義している[[データ型]]である。この値は標準の<code>'''time()'''</code>ライブラリ関数によって得られる。このデータ型は、標準の[[ <tt><nowiki><time.h]]></nowiki></tt> [[ヘッダファイル]]で[[typedef]]によって定義されている。[[C言語|ISO C]]では、'''<code>time_t''' </code>数値型と定義しているが、[[データ型]]・[[値の範囲]]・[[周波数|周期]]や、エンコーディング方法は定義していない。また、時刻の値に対する算術演算の動作は定義していない。
 
[[UNIX]]と[[POSIX|POSIX互換システム]]では、[[UNIX時間]]([[協定世界時]] (UTC) [[1970年]][[1月1日]] [[協定世界時|UTC]]([[協定世界時]])0[[時]]00[[分]]00[[秒]]からの秒数)を表す符号付の整数(通常は32または64[[ビット]])で'''<code>time_t''' </code>型を実装している([[閏秒]]は数えない)。いくつかのシステムでは、負の時刻値をサポートするが、サポートしないシステムもある。[[2038年問題]]のために、[[32ビット]]の<code>time_t</code>は非難されている<ref>[http://pw1.netcom.com/~rogermw/Y2038.html The Year 2038 problem], Roger M. Wilcox. Retrieved on [[2008年]][[5月19日]].</ref>。
そのため、最近のシステムには、'''<code>time_t'''</code>を[[64ビット]]の整数型として定義しているものが多いが、古いシステムではそうでないものもあるので注意が必要である。
 
ISO Cでは、'''<code>time()'''</code>関数だけでなく、[[システム時刻]]'''<code>time_t''' </code>の値を[[日付|カレンダー時刻]]に変換したりする関数や、逆の変換を行う関数などを定義している。
 
==利用例 ==
40行目:
== time_tパーティ ==
{{出典の明記|section=1|date=2009年2月}}
{{更新|section=1|date=2019年3月}}
UNIXファンは、[[UNIX時間]]の意味ありげな値を祝賀するために'''time_tパーティ'''を行ってきた歴史がある。これは、多くの暦で年が変わるときに行われる[[元日|新年]]パーティと良く似ている。UNIX時間の使用が広がったことで、マイルストーンを祝うことが習慣となった。通常は端数のない[[十進法|10進数]]の時刻の値が、time_t の値を10進数で眺めるUNIXのコンベンションで祝賀される。一部のグループは、[[2004年]][[1月10日]]の13:37:04 [[協定世界時|UTC]]に起こった+2<sup>30</sup>のような端数のない[[二進法|2進数]]も祝賀している。
 
これらの祝賀イベントは、通常は「UNIX epochからN秒」と呼ばれるが、これは不正確である。上で述べたとおり、UNIX時刻の[[閏秒]]の扱いのため、UNIX epochからの秒数はUNIX時刻の数よりもわずかに大きい。
 
[[2001年]][[9月9日]] 01:46:40 [[協定世界時|UTC]]、[[2001年9月9日問題|UNIX billennium]](UNIX時刻が1000000000)祝賀が行われた。
 
[[2005年]][[3月18日]] 01:58:31 [[協定世界時|UTC]]、UNIX時刻が1111111111に到達した。
 
[[2009年]][[2月13日]] 23:31:30 [[協定世界時|UTC]]、UNIX時刻が1234567890に到達する祝賀が行われる見込みである。
 
[[2033年]][[5月18日]] 03:33:20 [[協定世界時|UTC]]、2回目のUNIX billennium(UNIX時刻が2000000000)の祝賀が行われる予定。
 
== 関連項目 ==