[3] 
[DFN[7date]] は[[暦法]]の1つです。

* 仕様書

[REFS[
- [1] 
[CITE[The 7date specification]], [TIME[2022-06-26T01:34:13.000Z]], [TIME[2023-04-24T08:30:43.801Z]] <https://tylerneylon.com/a/7date_spec/>
]REFS]

* 呼称

[37] 
[[7date]] と呼ばれます。 [SRC[>>1]]
これは[[日付]]ことを指すと共に[[暦法]]の呼称としても使われています。

[38] 
当初は [DFN[tdate]] と呼んでいたようです。 [SRC[>>34]]

* 暦法

[2] 
[[年月週日暦]]と[[年日暦]]の中間形態です。

[4] 
[[日付]]は[[西暦年]]と[[日]]の組 ([DFN[7date]]) で表します。
[SRC[>>1]]

[15] 
[[年]]は[[グレゴリオ年]]です。
[[年始]]は[[グレゴリオ年始]]です。
[[閏日]]は年末に挿入します [SRC[>>1]]。

;; [25] [[閏日]]は [CODE[1031.]]。

[5] 
[DFN[7month]] は原則49日で構成される[[月]]です。
[[年始]]に7個の [[7month]] があります。
[[年末]]に22日または23日の [[7month]] が1個あります。
[SRC[>>1]]

[6] 
[[日]]は[[7進数]]表記します。
最下位の[[桁]]が[[曜日]]に相当し、
中央の[[桁]]が[[週番号]]に相当し、
最上位の[[桁]]が [[7month]] の[[番号][月番号]]に相当します。

** 曜日

[24] 
[[曜日]]は、

- [DFN[0-day]]
- [DFN[1-day]]
- [DFN[2-day]]
- [DFN[3-day]]
- [DFN[4-day]]
- [DFN[5-day]]
- [DFN[6-day]]
- [DFN[7-day]]

と称します。
[SRC[>>1]]

[26] 
[[0-day]] と [[1-day]] が[[週末]] (weekend) となります。
[SRC[>>1]]

* 日時形式

[9] 
[[人間]]向けの[[日時表示]]や[[機械処理]]向けの[[日時形式]]として使える構文が定められています。

[22] 
[[date7]] で使う[[非零7進数]]は、 
[CODE[1]],
[CODE[2]],
[CODE[3]],
[CODE[4]],
[CODE[5]],
[CODE[6]]
の6個の[[欧州数字]]です。

[23] 
[[date7]] で使う[[7進数]]は、
[CODE[0]]
または[[非零7進数]]の7個の[[欧州数字]]です。


** 人間向け

[20] 
完全形は、[[日数]]、[CODE[.][FULL STOP]]、[[西暦年]]の組み合わせによります。
[[日数]]は[[7進数]]、[[西暦年]]は[[10進数]]で表記します。
[SRC[>>1]]

[8] 
[[年]]が明らかなときは省略できます (が [CODE[.][FULL STOP]] は書きます)。
[SRC[>>1]]

;; [10] [[先導0]]は使わないようです。

[FIG(railroad)[ [[日]]

= |
== =
=== [[7進数]]
== =
=== [[非零7進数]]
=== [[7進数]]
== =
=== [[非零7進数]]
=== [[7進数]]
=== [[7進数]]
== =
=== [CODE[10]]
=== |
==== [CODE[0]]
==== [CODE[1]]
==== [CODE[2]]
=== [[7進数]]
== =
=== [CODE[103]]
=== |
==== [CODE[0]]
==== [CODE[1]]
= [CODE[.][FULL STOP]]
= ?
== [[西暦年]]

]FIG]

[EG[
[12] 
[CODE[0.2031]]
は[TIME[2031-01-01]]です。
[SRC[>>1]]
]EG]

[EG[
[13] 
[CODE[10.2031]]
は[TIME[2031-01-08]]です。
[SRC[>>1]]
]EG]

[11] 
[[月]]は下位2桁を [CODE[--]] とすることにより、
[[週]]は下位1桁を [CODE[-]] とすることにより、
記述できます。
[SRC[>>1]]

[FIG(railroad)[ [[週]]

= |
== =
=== [[7進数]]
== =
=== [[非零7進数]]
=== [[7進数]]
== =
=== [CODE[10]]
=== |
==== [CODE[0]]
==== [CODE[1]]
==== [CODE[2]]
==== [CODE[3]]
= [CODE[-]]
= [CODE[.][FULL STOP]]
= ?
== [[西暦年]]

]FIG]

[FIG(railroad)[ [[月]]

= |
== [[7進数]]
== [CODE[10]]
= [CODE[-]]
= [CODE[-]]
= [CODE[.][FULL STOP]]
= ?
== [[西暦年]]

]FIG]

[EG[
[14] 
[CODE[0--.2026]]
は[TIME[西暦2026年][2026]]の最初の
[[7month]]
です。
[SRC[>>1]]
]EG]

** 機械向け

[16] 
[[日付]]は、
[[西暦年]]、[CODE[-]]、[[日数]]の組み合わせによります。
[[日数]]は[[7進数]]、[[西暦年]]は[[10進数]]で表記します。
[[日数]]は4桁で[[0埋め]]します。
[SRC[>>1]]

[17] 
明言はされていませんが、
[[西暦年]]も4桁表記することとなっています。

[EG[
[18] 
[CODE[2020-0023]]
は、
[CODE[23.2020]]
を表します。
]EG]

** 日時形式パターン


[19] 
[[LDML date format pattern]]
の拡張が定められています。
[SRC[>>1]]


[7] [DFN[[CODE[7]]]] は、
[[非零7進数]]に[[7進数]]が任意個続くものを表します。
[[年の日]]経過数を[[7進数]]で表したものと解釈します。
[SRC[>>1]]

[FIG(railroad)[ [CODE[7]]
= [[非零7進数]]
= *
== [[7進数]]
]FIG]

;; [21] これでは値 [CODE[0]] が一致しませんが...

[7777] 
[DFN[[CODE[7777]]]]
は、
[[7進数]]4桁の[[0埋め]]された文字列を表し、
[[年の日]]経過数を[[7進数]]で表したものと解釈します。
[SRC[>>1]]

[FIG(railroad)[ [CODE[7777]]
= [[7進数]]
= [[7進数]]
= [[7進数]]
= [[7進数]]

]FIG]

* 実装と用例

[28] 
提唱者による[[カレンダー]]があります。

- [32] 
[CITE[tdate - TylerNeylon.com]], [TIME[2023-04-24T09:47:38.000Z]], [TIME[2004-10-24T13:32:44.137Z]] <https://web.archive.org/web/20041024120614/http://www.math.nyu.edu/~neylon/tdate.php>
- [31] 
[CITE[null]], [TIME[2023-04-24T09:47:29.000Z]], [TIME[2005-12-18T15:51:45.382Z]] <https://web.archive.org/web/20051218142421/http://www.math.nyu.edu/~neylon/tdate3.php>
- [27] 
[CITE[7date calendar]], [TIME[2022-06-26T01:34:00.000Z]], [TIME[2023-04-24T09:46:12.815Z]] <https://tylerneylon.com/a/7date/>

[40] 
提唱者によるソフトウェアがいくつかあります。

- [29] [CITE@ja[Tyler NeylonさんはTwitterを使っています: 「Here's a little Python code to convert to and from the 7date format: https://t.co/m4WPPYMHo2 The 7date calendar is a mathematically elegant way to measure the days of a year; an alternative to the Gregorian cal. It's simply: (days-elapsed-so-far)_(base 7). (year)_(base 10).」 / Twitter]], [TIME[午前4:35 · 2022年4月3日][2022-04-02T19:35:08.000Z]], [TIME[2023-04-24T07:57:08.000Z]] <https://twitter.com/tylerneylon/status/1510340070389137411>
-- [30] [CITE@en[A short Python module to convert to and from 7date strings. See http://tylerneylon.com/a/7date_spec/ · GitHub]], [TIME[2023-04-24T09:47:19.000Z]] <https://gist.github.com/tylerneylon/0ef4293e1ba7bba4becdad24ff365951>
- [39] [CITE@en[GitHub - tylerneylon/wj: bare bones work journal]], [TIME[2023-04-24T12:29:43.000Z]] <https://github.com/tylerneylon/wj#support-for-the-7date-calendar>



[33] 
提唱者のウェブサイト [SRC[>>1]] の各ページ (無関係のページを含みます。) のフッターの日付で使われています。

[35] 
他に個人的な記録にも使っていたそうです。 [SRC[>>34]]

[REFS[

-
[34] [CITE@en[thinking: A new calendar system]], [TIME[2010-04-05T11:38:57.000Z]], [TIME[2023-04-24T09:48:24.300Z]] <https://tylerneylon.com/blog/2006/11/new-calendar-system.html>
]REFS]


[41] 同じような案を思いついた人が他にもいるようです [SRC[>>34]]。
その他の人の用例は未発見です。

* 関連

[42] 
[[暦法改良案]]には似たような性質の[[暦法]]もあります。
しかし
[[7進数]]を採用し[[日]]と[[週]]と[[月]]を単一の数値にまとめたのは前例のない
[[7date]] の特徴といえます。


* メモ



[36] 
提案ブログ記事には60進数の[[時刻]]でなく[[十進化時間]]だったらよかったという旨が書かれていますが
[SRC[>>34]]、
例示だけで [[tdate]] / [[7date]] に[[時刻]]部分の規定は含まれていません。



