« 環境依存文字(Unicode) 一覧 | トップページ | SHA-1の「Freestart Collision」が見つかる »

2014.02.06

紀元前の日付の表記法

今まで50年以上(?)なんの疑問も持たずに生きてきたのであるが、紀元前の「日付」は何暦に基づいて表記されるのか、疑問に思った。

Wikipediaによると、ユリウス暦が制定されたのは紀元前45年(安定して運用されたのは紀元8年以降)らしい。紀元前45年以降はユリウス暦による表示が可能(ただし、運用は複雑)という事らしい。紀元前45年より前という事になるとローマ歴が存在した事になるが、運用はさらに恣意的であったという事である。

実際に紀元前の日付が使われている個所を具体的に見てみると、紀元前100年7月13日にユリウス・カエサルが誕生したとある(異説あり)。紀元前100年の記事では「日付はユリウス暦」とあるが根拠は述べられていない。当人の記事本文からすると「ローマ歴」の方が正しいようである。

ローマ以外を調べると、漢の武帝が即位したのが紀元前141年3月9日という事である。紀元前141年はローマ歴の時代であるが、日付は中国の暦(顓頊暦)らしい(対応するローマ歴の日付が求められるかは不明)。ちなみに顓頊暦は太陽年の長さが365.25日でローマ歴よりも精度が高い。

さらに古い記述を見ると、紀元前763年6月15日に日食を記録したとの記載がある(この日付は日食の起こった時間を天文学的に推定したものらしい)。紀元前763年であればユリウス暦はもちろん、ローマすら建国されていない。暦法はおそらくユリウス暦の規則をそのまま遡ったものか、あるいは、グレゴリオ暦を遡ったものと思われるが明記されていなかった。

常識がないので歴史上どのように表記するのが標準なのか良くわからない。まったく勘が働かないので土地勘のあるコンピュータでの規格で見てみる事に方針転換を図る事にする。

土地勘があるところということで、Javaのjava.util.GregorianCalendarでは、1582年10月4日まではユリウス暦、10月15日以降がグレゴリオ暦という事である(設定により変更可能)。

GregorianCalendar は、「予期的」グレゴリオ暦およびユリウス暦を実装します。すなわち、日付の計算では、現在の規則を無限の過去あるいは未来に向けて適用します。このため、GregorianCalendar はすべての年について一貫した結果を生成するために使用できます。ただし、GregorianCalendar を使用して得られた日付は、歴史的に、現代と同様のユリウス暦が採用された AD 4 年 3 月 1 日以降の日付だけが正確です。この日付より前には、うるう年の規則は不規則に適用されており、BC 45 年以前にはユリウス暦は存在さえしていませんでした。
の注意書きがある。したがって、紀元前の日付はユリウス暦の規則をそのまま遡る方式である(設定により純粋なグレゴリオ歴とする事も可能)。

日付の表記法の国際規格であるISO8601では、

ISO 8601 では日付の表記にグレゴリオ暦を用いることになっているので、ユリウス暦の用いられていた時代の日付を表す際にはグレゴリオ暦に換算する必要がある。
という事なので、紀元前の日付は(紀元前でなくてもだが)グレゴリオ暦の規則をそのまま遡る方式である。ちなみに年の表示は紀元前1年が0000、紀元前2年が-0001となる。

あえて結論を言うとすれば、西暦の基本となるユリウス暦やグレゴリオ暦は紀元前には存在しないか、存在しても今と同じ運用はされていなかったという事であり、紀元前の日付は文脈依存にならざるを得ない。日付を書く場合にはどの暦法による日付かを明記すべきという事になるであろう。

« 環境依存文字(Unicode) 一覧 | トップページ | SHA-1の「Freestart Collision」が見つかる »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 紀元前の日付の表記法:

« 環境依存文字(Unicode) 一覧 | トップページ | SHA-1の「Freestart Collision」が見つかる »

最近のトラックバック

無料ブログはココログ

Googleアナリティクス

  • Googleアナリティクス