第10話 紀元前4713年1月1日
暦の話をしようと思う。
私達の日常生活の中で「暦の計算」はしばしば必要になるが、通常私たちが使う暦の表記法は「計算」を行うのに甚だ不適当だ。2018年7月3日から50日後の日付を求めよ、と言った類の課題はコンピュータプログラムの練習問題として良く出題される例題だが、この種の計算に際しては「2018年7月3日」などといった形式は使い難い。そもそも日本や欧州、米国ではそれぞれ暦の表記法が違う。暦法まで追加すると、余計にややこしい。
少し考えて、じゃあ年初からの日数で扱えば……と思うだろうが、その場合今度は年を跨ぐ計算がやはり面倒になる。閏年に増やされる一日が2月29日という半端なところに入るため、その処理も必要だ。
この種の問題は当然昔からあるわけで、既にこのような計算に便利なものが考案されている。それが「ユリウス通日」だ。
ユリウス通日(Julian Day)はユリウス暦紀元前4713年1月1日
JDNやMJDからグレゴリオ暦、ユリウス暦への変換、または逆変換の数式は既に確立しており、プログラミング言語によっては標準的な命令・ライブラリが用意されているため、コンピュータ上で日付計算をするのには非常に重宝する。二つの日付の間の日数なども、単純な計算で導き出せる。今日のJDNからあなたが生まれた日のJDNを差し引けば、あなたが生きてきた日数もあっさり弾き出せる。曜日も干支も、月齢も計算できる大変便利な代物なのだ。
気軽に試してみたい方は、国立天文台の暦計算室の暦象年表のページから変換ページヘのリンクを辿れるので、色々遊んでみると楽しめる。
かくしてコンピュータで日付情報を扱う場合は、暦法的な表記と内部的なデータを切り離し、後者には計算に適するJDNやMJDを用い、表示に際してグレゴリオ暦(や国や地域によってはヒジュラ暦など、現地で使用される暦)に変換する、というのが〝冴えたやり方〟とされるところである。
とは言え、JDNやMJDと「人間が読める暦」を変換する際には、その場所・地域・時代で使われていた暦を確認しないといけないのは絶対である。
なお、この「ユリウス通日」だが、暦法の「ユリウス暦」とは似た名前ながら全く別物、という辺りが面倒だったりする。考案者である古典学者のヨセフ・ユストゥス・スカリゲルが、父ユリウス・カエサル・スカリゲルに
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます