[5] 便宜上[[日]]や[[秒]]を[[単位]]とする[[整数]]や[[実数]]で[[時刻]]や[[時間]]を表すことがよくあります。
このような[[時刻系]]を[DFN[[RUBYB[単一数値時刻系][single-number time system]]]]といいます。
[[元期]]に対する[[相対時刻]]ともいえます。

* 一覧


[FIG(list short)[ [3] 単一数値時刻系の一覧

- [[100年][世紀]]単位のもの
-- [[ユリウス世紀数]]
- [[年]]単位のもの
-- [[元期][元期形式]] 
-- 各種[[整数増加型紀年法]]
-- 各種[[整数減少型紀年法]]
- [[月]]単位のもの ([DFN[通月]])
-- [[太陰月番号]]各種
- [1] [[日]]単位のもの ([DFN[通日]])
-- [[ユリウス日]]
-- [[修正ユリウス日]]
-- [[リリウス日]]
-- [[TJD]]
-- [[RD][Rata Die]]
-- [[REXX DATE]]
-- [[COBOL整数日付]]
-- [[MJED]]
-- [[1900 date system]]
-- [[1904 date system]]
-- [CODE[datenum]]
-- [[epoch days]]
-- [[The Nth Day.]]
-- [[ハイリア数]]
-- [[川音通日]]
-- [[彼水数]]
-- [[dec数]]
- [2] [[秒]]単位のもの ([DFN[通秒]])
-- [[Unix time]]
-- [[ASCAT]]
-- [[ZigBee UTCTime]]
-- [CODE[NSDate]]
-- [[TAI64]]
-- [CODE[LONGDATETIME]]
-- [[ユリウス通秒]]
-- [[川音通秒]]
-- [[NTP time]]
- 100[[ミリ秒]]単位のもの
-- [[Deep Impactの日時]]
- 10[[ミリ秒]]単位のもの
-- [[RISC OS時刻]]
- [[ミリ秒]]単位のもの
-- [[JavaScript時刻]] / [CODE(DOMi)@en[DOMTimeStamp]]
-- [CODE[SYSTIM]]
-- [[絶対時間 (CICS)]]
- [[マイクロ秒]]単位のもの
-- [CODE[SYSTIM_U]]
- 100[[ナノ秒]]単位のもの
-- [[[CODE[DateTime]] (.NET)]]
- [[ナノ秒]]単位のもの
-- [[Go時刻]]
-- [[EBML]] [CODE[Date Element]]
-- [[Windows時刻]]
-- [[VMS時刻]]
-- [[TAI64N]]
- [[アト秒]]単位のもの
-- [[TAI64NA]] 

]FIG]

[10] [[フィクションの暦]]にも[[宇宙暦]]の一種など1つの[[数]]で[[日時]]を表すものがあります。

* 元期

[6] 起算点を[[元期]]といいます。

* 値域

[38] 
[[計算機]]上の表現として用いる場合、[[変数]] (などの値を保持する領域)
に十分なサイズを確保する必要があります。[[変数]]サイズが[[値域]]、
つまり表現可能な最古と最新の[[日時]]の制約となります。

[39] 
[[元期]]を下限とする[[符号無し整数]]とするパターンと、
[[元期]]を中心に前後 (ほぼ) 同期間を扱う[[符号付き整数]]や[[浮動小数点数]]とするパターンがあります。

[40] 
可変長の領域を使って[[元期]]に近い範囲はコンパクトに、
遠い範囲も表現可能にするなど、
[[数値]]表現の様々な技法が[[日時]]記述にも用いられます。

[41] 
どのような手法を取るにしても、[[桁溢れ]]の対策が必要となります。
[SEE[ [[日時桁溢れ問題]]、[[日時のセキュリティー]] ]]

[EG[
[42] 
最も影響範囲が広く深刻とされているのが
[[Unix time]] の[[2038年問題]]です。
]EG]

* 時間座標系

** [CODE[TM_CoordinateSystem]]

[19] 
[DFN[[RUBYB[時間座標系][temporal coordinate system]]]]すなわち
[DFN[[CODE[TM_CoordinateSystem]]]]
は、
単一の[[時間単位]]の倍数として[[距離]]を[[測定]]する連続な[[間隔尺度]]の[[時間参照系]]です。
[SRC[>>18 4.1.3, >>18 5.3.3]]

[20] 
[[暦日]]や[[時刻]]による[[時間位置]]の指定は、
相互の[[距離]]の計算や[[時間操作]]の[[関数]]表現が複雑になるため、
そうした[[応用]]のため[[時間座標系]]を使うことがあります。
[SRC[>>18 5.3.3]]。

[26] [CODE[TM_ReferenceSystem]] を[[継承]]しています。


[21] 次のものを持ちます。
[SRC[>>18 5.3.3]]

[FIG(list members)[ [22] [CODE[TM_CoordinateSystem]]

: [DFN[[F[origin][TM_CoordinateSystem]]]] :
[[尺度]]の[[原点]]を[[グレゴリオ暦]]と [[UTC]]
で記述した
[CODE[DateTime][ISO 19103 DateTime]]。
適切な[[分解能]]に[[丸め]]られます。
: [DFN[[F[interval][TM_CoordinateSystem]]]] :
[[尺度]]の基本的な[[時間間隔]]として使用する単一の測定単位の名称の
[CODE[CharacterString]]。
この[[時間間隔]]は[[応用]]により適切なものを選択できますが、
[[JIS Z 8202-1]]
の[[時間]]の[[測定単位]]か、
[[JIS Z 8203]]
の規定する[[測定単位]]の組み合わせでなければなりません。

]FIG]

[23] 次の操作を利用可能としなければなりません。
[SRC[>>18 5.3.3]]

- [24] [DFN[[CODE[transformCoord]]]] は、
当 [CODE[TM_CoordinateSystem]] の座標値 [CODE[TM_Coordinate]]
を[[引数]]とし、
対応する[[グレゴリオ暦]]と [[UTC]] の[[日時]] [CODE[DateTime][ISO 19103 DateTime]]
を返さなければなりません。
- [25] [DFN[[CODE[transformDateTime]]]] は、
[[グレゴリオ暦]]と [[UTC]] の[[日時]] [CODE[DateTime][ISO 19103 DateTime]]
を[[引数]]とし、
対応する当 [CODE[TM_CoordinateSystem]] の座標値 [CODE[TM_Coordinate]]
を返さなければなりません。


[FIG(quote)[
[FIGCAPTION[
[18] [[JIS X 7108:2004]]
]FIGCAPTION]

>
:4.1.31 時間座標系 (temporal coordinate system):
単一の[[時間単位]]の倍数として[[距離]]を[[測定]]する[[間隔尺度]]を基礎とする[[時間参照系]]。
]FIG]

** [CODE[TM_Coordinate]]

[27] [DFN[[CODE[TM_Coordinate]]]]
は、[[時間座標系]]の中の特定の[[時間位置]]を表します。
[SRC[>>18 5.4.5.1]]

[28] 次のものを持ちます。
[SRC[>>18 5.4.5.1]]

[FIG(list members)[ [29] [CODE[TM_Coordinate]]

: [DFN[[F[coordinateValue]]]] :
[[時間座標系]]において[[原典]]からの標準間隔の倍数として表現した[[距離]]の
[CODE[Number]]。

]FIG]

[30] [CODE[TM_Coordinate]] は [CODE[TM_TemporalPosition]]
を[[継承]]し、
[CODE[TM_Position]] として使うことができます。
[SRC[>>18 5.4.5.1]]

[31] [[子クラス]]に [CODE[JulianDate]] があります。

[REFS[

[FIG(quote)[
[FIGCAPTION[
[37] [[JIS X 7108:2004]]
]FIGCAPTION]

>
:4.1.30 時間座標 (temporal coordinate):
[[時間座標系]]の基礎として使用する[[間隔尺度]]の[[原点]]からの[[距離]]。
]FIG]
]REFS]

** OWL-Time

[34] [[OWL-Time]] は[[時間参照系]]の説明と共に
[[ISO 19108]] [[時間座標系]]、
[[ISO 19111]] [[時間座標参照系]]を挙げています。 [SRC[>>32]]
[SEE[ [[時間参照系]] ]]

[REFS[

[FIG(quote)[
[FIGCAPTION[
[32] [CITE@en[Time Ontology in OWL]]
([TIME[2017-10-16 14:39:32 +09:00]])
<https://w3c.github.io/sdw/time/#x3-2-temporal-reference-systems-clocks-calendars>
]FIGCAPTION]

> For many purposes it is convenient to make temporal calculations in terms of clock durations that exceed everyday units such as days, weeks, months and years, using a representation of temporal position in a [I[temporal coordinate system]] [iso19108], or [I[temporal coordinate reference system]] [iso-19111-2019], [ogc-topic-2], i.e. on a number line with a specified origin, such as Julian date, or Unix time. This may be converted to calendar units when necessary for human consumption. 

]FIG]

]REFS]

* ISO 19111

[35] 
[[ISO 19111]] の[[時間座標参照系]]のうち、
[DFN[[CODE[TemporalCountCS]]]] は[[整数]]によるもの、
[DFN[[CODE[TemporalMeasureCS]]]] は[[実数]]によるものです。
[SRC[>>36]]

[REFS[
- [36] [CITE@en[OGC Abstract Specification Topic 2: Referencing by coordinates]] ([TIME[2019-02-25 14:52:07 +09:00]]) <http://docs.opengeospatial.org/as/18-005r4/18-005r4.html#44>
]REFS]

* 応用

[11] 
[[日時計算]]に便利で、[[天文学]]などを中心に古くから使われてきました。

[EG[
[13] [[日付]]を使うと2つの[[日]]の間の[[期間]]の長さを求めるのはかなり難しいですが、
両者を[[通日]]に変換しておけば、簡単な[[減算]]になります。
]EG]

[EG[
[14] [[日付]]から[[曜日]]を求めるのは[[ツェラーの公式]]がありますが、
[[通日]]なら[[剰余]]を求めるだけでもっと簡単にわかります。
]EG]

[12] 
[[計算機]]処理のための[[日時]]の記憶・[[交換][情報交換]]形式としてもよく使われています。
回数・頻度でいえば世界中で最もよく使われている[[日時形式]]のクラスであるとみられます。

[16] 
[[Microsoft Excel]] は[[日時]]の内部形式の[[数値]]のことを[DFN[シリアル値]]と呼んでいます。
[[Excel]] の操作や[[マクロ]]を解説する類の [[Webページ]]でこの名称はよく使われています。
[SEE[ [[1900 date system]], [[1904 date system]] ]]

* 関連

[4] [SEE[ [[十進化時刻]]、[[閏秒のないUTC]] ]]

[9] [[ISO 8601]] のいう[[通日日付]]や日常の場面で稀に用いられる[[通日][通日日付]]、
あるいは [[DOY]] とは、
[TIME[1月1日][--01-01]]に起算する[[年の日]]の数です。
[[小数]]を用いることもあります。

[7] [[TLEの日時形式]]は[[2桁西暦年号]]と[[元日]]から起算した[[日]]単位の[[小数]]の組を使っています。

[8] [[DOSの日時形式]]には[[日付]]部分を[[日]]単位の[[整数]]で表すものもありました。

[33] [CODE[DateTime.pm]] は ([[UTC]] [[RD]], [[秒]]数, [[ナノ秒]]数)
で内部的に保持しているようです。[[閏秒]]にも対応しています。

[45] [[タイ国王即位通日]]は[[国王]]の[[即位]]から起算したものです。

* メモ

[FIG(quote)[
[FIGCAPTION[
[15] ([TIME[2013-01-21 18:03:25 +09:00]])
<https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/168682/1/tnk000269_382.pdf>
]FIGCAPTION]

>  陸軍では通日は使用して居らぬが,諸:方面の同時作職をするが如き場合に
は,某日を「x日」と定め,心際の暦日を「x+a」帥ちx日+幾日として行動
せしめることがある.例へば某地上陸をx日とし,上陸後2日目には某地に進
出し某川を領有すると云ふが如きで,x日を10月10冒とすれば, x日+2日:
10月12日と云ふごとになるのである.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[17] [CITE['''['''tz''']''' Epic fail for DST fallback in hospital health records]]
([TIME[2018-11-05 14:08:44 +09:00]])
<https://mm.icann.org/pipermail/tz/2018-November/027180.html>
]FIGCAPTION]

> I have a very distinct
> recollection that HYDRA/C.mmp'''['''1''']''' ran their system clock in microseconds
> since Charles Babbage's birthday (26 December 1791).

]FIG]


-[43] 
[CITE@ja-JP[[[通秒]] / [[川音リオ]] / [[デライト]]]], 
[[川音リオ]], 
2022-09-13 02:29,
[TIME[2023-04-05T06:07:55.000Z]] <https://dlt.kitetu.com/?fg=KNo.D640/7735>
- [44] 
[CITE@ja-JP[[[紀秒法]] / [[川音リオ]] / [[デライト]]]], 
[[川音リオ]], 
2022-09-12 16:34,
[TIME[2023-04-05T06:10:07.000Z]] <https://dlt.kitetu.com/?fg=KNo.D640/99CD>







