天文学的紀年法
天文学的紀年法（てんもんがくてききねんほう、Astronomical year numbering）は、西暦の紀年法に基づいているが、通常の十進数の整数の番号付けに厳密に従う。従って「0年」が存在し、それより前の年は負の数で、それ以降の年は正の数で表される。天文学者は、1582年よりも前（0年を含む）にはユリウス暦を、1582年以降にはグレゴリオ暦を使用する。例えば、ジャック・カッシーニ（1740年）、サイモン・ニューカム（1898年）、フレッド・エスペナック（2007年）がそのようにしている。
接頭辞ADや接尾辞CE(Common Era)、BC(Before Christ)、BCE(Before Common Era)は使わない。紀元前1年は0、紀元前2年は-1、紀元前n年は”-(n-1)”で表される。紀元1年以降は変更されず、符号なしまたは正の符号で書かれる。すなわち、紀元n年は単にnまたは+nと書かれる。元期にまたがる期間の年数を計算するときには、西暦そのままでは0年が存在しないことを考慮しなければならない。天文学の紀年法では、単に最後の年から最初の年を引くだけで良い。
このシステムは、天文学で使用されているためこのように呼ばれている。歴史以外の他の学問分野は西暦1年より前の時期を扱っているが、例外は年輪年代学、考古学、地質学で、後者2つでは「BP」(before present、現在から何年前)を使用している。天文年と歴史年の絶対値は西暦1年より前は1異なるが、この違いは、食や合のような天文イベントを計算し、それらが言及された歴史イベントがいつ発生したかを判断するときに重要である。
0年の使用
ヨハネス・ケプラーはルドルフ表（1627年）において、太陽・月・土星・木星・火星・金星・水星の平均運動の表について「0年」のプロトタイプを使っていた。彼は、Ante Christum（紀元前）とPost Christum（紀元後）の間にChristi (Christ's)の年を置いた。1702年、フランスの天文学者フィリップ・ド・ラ・イールは、Tabulæ Astronomicæの平均運動のページで、紀元前（ante Christum）の最後の年を「Christum 0」とした。すなわち、ケプラーがChristiと表記したものに「0」を付けた。最後に、1740年にフランスの天文学者ジャック・カッシーニは、Tables astronomiquesにおいてこの年を単に「0」と表記し、それより前の年にはavant Jesus-Christ、後の年にはaprès Jesus-Christを付けた。これにより、「0年」という表記の発明者は伝統的にカッシーニであるとされている。
カッシーニが0年を使った理由は次のように述べられている。
The year 0 is that in which one supposes that Jesus Christ was born, which several chronologists mark 1 before the birth of Jesus Christ and which we marked 0, so that the sum of the years before and after Jesus Christ gives the interval which is between these years, and where numbers divisible by 4 mark the leap years as so many before or after Jesus Christ.
—Jacques Cassini
0年は、イエス・キリストが誕生したとみなされ年であり、何人かの年代記者は、イエス・キリストの誕生前に1とマークする。その結果、イエス・キリストの前後の年数の合計がこれらの年の間の間隔を与え、イエス・キリストの前と後で同様に、4で割り切れる数が閏年とすることができる。
—ジャック・カッシーニ
NASAのフレッド・エスペナックは、0年における50回の月相を挙げ、それが瞬間ではなく丸々一年であることを示している。ジャン・メーウスは次のように説明している。
There is a disagreement between astronomers and historians about how to count the years preceding year 1. In [Astronomical Algorithms], the 'B.C.' years are counted astronomically. Thus, the year before the year +1 is the year zero, and the year preceding the latter is the year −1. The year which historians call 585 B.C. is actually the year −584.
The astronomical counting of the negative years is the only one suitable for arithmetical purpose. For example, in the historical practice of counting, the rule of divisibility by 4 revealing Julian leap-years no longer exists; these years are, indeed, 1, 5, 9, 13, ... B.C. In the astronomical sequence, however, these leap-years are called 0, −4, −8, −12, ..., and the rule of divisibility by 4 subsists.
—Jean Meeus, Astronomical Algorithms
西暦1年より前の年数を数える方法については、天文学者と歴史家の間で意見の相違がある。[Astronomical Algorithms]では、紀元前の年は天文学的に数えられる。従って、+1年の前の年は0年であり、その前は-1年である。歴史家が紀元前585年を呼ぶ年は、実際には−584年である。マイナスの年の天文計算は算術目的に適した唯一のものである。例えば、歴史学における紀年法では、ユリウス暦の閏年を表す4による割り算の法則はもはや存在しない。紀元前の閏年は紀元前1年、5年、9年、13年、...である。しかし、天文学の紀年法では、紀元前の閏年は0、-4、-8、-12、...であり、4による割り算の法則が成り立つ。
—ジャン・メーウス, Astronomical Algorithms
0年なしの符号付き年
ビザンチンの歴史家Venance Grumelは、紀元前の年に（マイナス記号で識別される）負の年を、紀元後の年に符号なしの正の年を表において使用した。ただし、彼の本の他の場所では、年を表記するのに通常のフランス語の"avant J.-C." (before Jesus Christ)と"après J.-C." (after Jesus Christ)を使っている。おそらく彼は表示スペースを節約するためにそうしただけであり、0年は使っていない。
XML Schemaのバージョン1.0は、コンピュータ間で交換されるデータをXMLで記述するためによく使用されるが、これには組み込みのプリミティブデータ型dateおよびdateTimeが含まれる。これらは、先発グレゴリオ暦を使用するISO 8601の観点から定義されているため0年を含める必要があるが、XML schemaの仕様では0年はないと規定されている。バージョン1.1では0年を含めることによってISO 8601の仕様に沿うように再定義されたが、これにより後方互換性を失うこととなった。