パルディ天球図 より、こと座 Ignace Gaston Pardies, Wikimedia Commons

ユリウス日を求める

天文計算の世界では、私たちが使っている「年」「月」「日」という日付の表記は、とても不便です。

問.木星が2020年7月14日に衝となった。木星の会合周期を399日とし、次の衝の日付を求めよ

に、ぱっと答えが出せる人は、そうはいないでしょう1。なぜ不便かというと、1か月の長さが一定でないこと2、うるう年があったりすること3が、原因でしょう。

上の例でいえば、1年は365日だから、399-365=34で、1年と34日。7月は31日まであるから、7月14日から34日後は、8月17日。答えは、2021年8月17日、と計算するわけです。

年月日の表記は、私たちには分かりやすいものですが、計算上は扱いづらい。では、年月日をやめて、すべて日付で数えてしまえ、という考えが出てきます。天文計算の世界では、「ユリウス日」というものを使っています4

ユリウス日

ユリウス日は、紀元前4713年1月1日を0日として、そこからの経過日数を数えるものです。例えば2000年1月1日は、2451544.5日です(国立天文台暦計算室 ユリウス日

なぜ紀元前4713年というはるか過去が基準なのか、どうして0.5という数字が付いているのか、などについては、国立天文台 ユリウス日の解説を参照してください。

このユリウス日を使うと、上の問題は、2020年7月14日のユリウス日は2459044.5、それに399を足して、2459443.5、それを年月日に戻して、2021年8月17日、と計算できます。ユリウス日を使ったとしても、計算の最初と最後で、年月日とユリウス日の変換が必要なので、今の例ではあまり、ありがたみは感じませんが、例えば同じ条件で5回後の衝の日付を求めよ5、とか、10日ごとの太陽の位置を3年分計算せよ、などという問題では、計算が楽そうだ、と想像ができると思います。

とはいうものの、年月日とユリウス日の変換というのも、そう簡単なことではありません。ぶっちゃけ、国立天文台暦計算室 ユリウス日で計算するのが、楽で速く正確です。が、それでは、このページの存在意義がなくなります。

ここでは、西暦1901年から、西暦2099年のユリウス日を計算できるようにしてみましょう6

ユリウス日の計算

  1. 1月1日のユリウス日を計算する

    まずは、毎年1月1日のユリウス日を計算します。その後、そのユリウス日に「月」の日数と「日」を足せば、計算したい日のユリウス日を計算できるはずです。
    ここでは、1901年から2099年までのユリウス日を計算できるようにしたいので、基準を1901年1月1日としました。

    毎年1月1日のユリウス日 = 2415385.5 + [(求めたい年-1901)×365.25]※※
     ※2415385.5 は、1901年1月1日のユリウス日
     ※※[]の中身は、整数部分だけを取り出す。
      例: [ 43464.75 ] = 43464

     例: 2020年1月1日のユリウス日
      = 2415385.5 + [(2020 – 1901) × 365.25]
      = 2415385.5 + [119 × 365.25]
      = 2415385.5 + 43464
      = 2458849.5


  2. 1月1日から、前月までの日付を足す

    1.で計算した日付に、計算したい前月までの各月の日数を足します。いちいち、31+28+31+30+・・・とやるのも煩雑なので、表を作りました。

    日数
    1月 0日
    2月 31日
    3月 59日
    4月 90日
    5月 120日
    6月 151日
    7月 181日
    8月 212日
    9月 243日
    10月 273日
    11月 304日
    12月 334日
    各月1日の、年初からの経過日数
    ただし、求めたい年が4で割り切れる(うるう年の)とき、3月以降を計算する場合は、上の数字に1日足します。

  3. 日付を足す

    ここまでくればもうすこし。最後に、計算したい日付を足せば、その日のユリウス日を計算することができます。

    ただ、一つ気を付けないといけないことがあります。 例えば7月1日は、1月1日からは181日後です。それを上の表にしているわけですが、これに、日付を足せばよい、ということで、+1してしまったらどうでしょうか。7月1日ではなく、2日のユリウス日が計算されてしまいます!

    それではまずいので、「日付を足した後、1引く」ということにしましょう。

    例:2020年7月14日のユリウス日を求めよ

     2020年7月14日のユリウス日
      = 2020年1月1日のユリウス日
       + 7月1日までの日数
       + 14日 – 1日 + うるう年加算(1日)
      = 2458849.5 + 181 + 14 - 1 + 1
      = 2459044.5

     答え: 2459044.5

ユリウス日→年月日の計算

逆に、ユリウス日を年月日に戻す計算方法も書いておきましょう。

  1. 年を決定する

    まずは、何年かを決めます。このサイトでの基準は1901年1月1日としましたから、計算するユリウス日から、1901年1月1日のユリウス日を引き、「計算したい日までの経過日」を計算します。

    まずは、その経過日を365.25で割ることで、1901年から何年経過しているか、を、計算します。計算したい「年」は、それに1901を加えればよいわけです。

    例:ユリウス日 2459044.5日の年月日を求めよ
     計算したい日までの経過日
      = 2459044.5 – 2415385.5
      = 43659

     1901年から年初までの経過年
       = [43659 ÷ 365.25 ]
       = [ 119.5318275 ]
       = 119

     計算したい年
       = 119 + 1901 = 2020


  2. 月、日を決定する

    1.で計算した経過年に、365.25を掛け、その整数部分を計算すると、1901年年初から、その年の年初までの「経過日」が計算できます。
    その「経過日」を、一番初めに計算した「計算したい日までの経過日」から引くと、その年の1月1日、その年年初からの経過日が計算できます。

    1901年から年初までの経過日
      = [ 119 × 365.25 ]
      = 43464

     その年年初からの経過日
      = 計算したい日までの経過日 – 1901年から年初までの経過日
      = 43659 – 43464
      = 195

    ここまで来たら、「ユリウス日を求める」で使った、「各月1日の、年初からの経過日数」の表を使って、月を調べて「月」を、
    残りの数字に1を足して、調べたい「日」とします。ただし、うるう年の3月以降は、1を減らします。

    日付計算で1を足したり引いたりしているのは、「年月日からユリウス日を求めた」その反対の操作をする、ということ。今、扱っている数字は、1月1日からの経過日数ですから、1月1日は「0日」なので1を足し、うるう年の3月以降は、2月29日の分、1日を引く必要があるためです。

    日数 195日
      = 上の表から「7月(181日)」と、14日。
      = 14 + 1 – 1(うるう年減算)
      = 14

     答え: 2020年7月14日

    注意:この計算方法だと、1月1日だけ、前年の12月32日と計算されてしまうことがあります。その場合、慌てずに1年進めて、1月1日としてください。


時刻はどうするの?

ユリウス日での小数は、「世界時」での時刻を表しています。正午が0、真夜中が0.5、午前6時は、0.75。

正午からの経過時間を、1時間単位なら「時」を24で割り、「分」もあればそれを60で割ってさらに24で割り、という計算をします。その数字を、上で計算したユリウス日に足してあげればよいわけです。

なぜ、正午が0か、というと「星は夜見えるから」です。星の観測をしている途中で、日付が変わってしまうと面倒ですから、天文で使っているユリウス日(天文時)は、正午から始まるわけです。

そして、もう一つ気を付けないといけないのは、ユリウス日は「世界時」だということです。普通、日本国内にいる人は日本標準時を使っていますから、世界時に変換してあげなければなりません。

操作は別段難しくなく、日本時から世界時にするには、時差9時間分、0.375を引き、逆に世界時から日本時にするには、0.375を足せばよいのです。マイナスの時刻になったら、日付を1日戻して24を足し、逆に24より大きくなったら、日付を1日進めて24を引けばよい、というのもお判りでしょう。

あなたの誕生日のユリウス日は?

ここまで読んできてくださった方は、1901年から2099年までの間の日付をユリウス日に、ユリウス日を日付に変換することができるようになったと思います。

その範囲外だと、違う日付が出てきてしまいますから、国立天文台暦計算室 ユリウス日など、使ってください。

それでは、よいユリウス日計算ライフを!

  1.  答えは、2021年8月17日。 正確な次の衝の日は、8月20日
  2.  31日だったり30日だったり、28日だったり、たまに29日ということも
  3.  旧暦の「うるう月」に比べればずいぶんマシですが
  4.  ほかにも例えば、Excelでは、1900年1月1日からの通日を使って、日付の計算をしているようです
  5.  年月日で計算すると、399日×5で、1995日。これを365日で割ると、5年と170日なので、2025年7月14日から170日後が、5回後の衝の日付。
    7月14日から31日までの日数は17、8月が31日、9月が30日、10月は31日、11月は30日、と引いていくと、残りが31日。2025年12月31日が答え・・・、と思いきや、2020年7月から2025年12月の間に、うるう年が1回(2024年)あるので、さらに1日引いて、2025年12月30日が答え。
    ああ、メンドウクサイ(笑)
  6.  この範囲外は、うるう年を省く計算が必要です。また、西暦1582年に、今の暦(グレゴリオ暦)に切り替えられましたので、切り替え前後で日付が連続していません。さらに、ヨーロッパ各国でも、グレゴリオ暦に切り替えた年がバラバラ、日本に至っては、明治3年まで旧暦を使っていましたから、どの国のいつの暦を変換するのか、ということも、本当は考えないといけません。この辺が「そう簡単ではない」のです