オリジンについての解説
オリジン(origin)とは、物事の起点を指し、特に数え方や基準点について使われる概念です。具体的には、0オリジンと1オリジンの二つの方式が存在します。簡単に言えば、0オリジンは数え始めを0から行い、1オリジンは1から行います。なお、これらは和製
英語であり、
英語ではそれぞれzero-basedやone-basedなどの用語が使われます。
オリジンの混在
私たちの
日常生活においては、0オリジンと1オリジンが共存している例が多く見受けられます。例えば、
日時の数え方において、
年・月・
日という単位は1オリジンで数えられます。すなわち、1
年1月1
日がスタート
日です。一方で、時・
分・
秒は0オリジンで、例えば0時0
分0
秒から数え始めます。このため、時表示に関しては混乱が生じることもありますが、0時は午前と午後の境界を表すため、0オリジンが適用されます。また、期間を表す場合は通常、すべて0オリジンとして考慮されています。
さらに
世紀の数え方も興味深い点です。紀元1
年を1
世紀と考えるため、
0年や0
世紀は存在しません。これは、紀元前1
年の直後に紀元1
年が来るからです。ただし、天文学では0オリジンで
年を数えることもあるため、注意が必要です。
また、人の
年齢の数え方にも0オリジンと1オリジンが見られます。
日本では満
年齢が0オリジンで、誕生
日からカウントされますが、数え
年では出生時に1歳とみなされるため、これは1オリジンです。これにより、
年齢の表し方が異なることになります。
プログラミングの世界でも、オリジンの概念は重要です。数多くの
プログラミング言語やその
ライブラリ・APIには、0オリジンまたは1オリジンどちらかを採用しているものがあります。特に、
配列のインデックスに関する議論がしばしば生じます。例えば、
C言語では
配列の最初の要素のインデックスは0ですが、FORTRANや
Luaでは1から始まります。さらに、
BASIC言語においては、標準化を経て0オリジンと1オリジンの両方に対応できる形に変更されることがあります。このため、
Visual Basicなどでは、それらのオリジンを指定できる機能が用意されています。
日付を扱う
ライブラリにおいては、月
日を1オリジンで取り扱うか、算術的に便利な0オリジンで処理するかによって利点と欠点があり、これに関しても混在が見られます。したがって、表示を換算する際には注意が必要です。
VB/VBAにおけるオリジンの指定
Visual Basic for Applications (VBA) ではオリジンを指定する方法があります。ただし、
Visual Basic .NET (VB
.NET)においてはこの機能が存在せず、C#など他の
.NET言語と同様に0オリジンのみをサポートしているため、その点にも留意しなければなりません。
まとめ
オリジンの考え方は、数え方や基準の設定において様々な場面で重要な役割を果たしています。
日時、
年齢、
プログラミング言語などさまざまな領域で異なるオリジンが存在し、それを理解することは、正確なコミュニケーションやプログラム作成に不可欠です。