def gc2jd(t)
      year, month, day = t.year, t.month, t.day
      hour, min, sec   = t.hour, t.min, t.sec

      begin
        # 1月,2月は前年の13月,14月とする
        if month < 3
          year  -= 1
          month += 12
        end
        # 日付(整数)部分計算
        jd  = (365.25 * year).floor \
            + (year / 400.0).floor \
            - (year / 100.0).floor \
            + (30.59 * (month - 2)).floor \
            + day \
            + 1721088.5
        # 時間(小数)部分計算
        t = (sec / 3600.0 + min / 60.0 + hour) / 24.0
        return jd + t
      rescue => e
        raise
      end
    end
def gc2jd(t)
      year, month, day = t.year, t.month, t.day
      hour, min, sec   = t.hour, t.min, t.sec

      begin
        # 1月,2月は前年の13月,14月とする
        if month < 3
          year  -= 1
          month += 12
        end
        # 日付(整数)部分計算
        jd  = (365.25 * year).floor \
            + (year / 400.0).floor \
            - (year / 100.0).floor \
            + (30.59 * (month - 2)).floor \
            + day \
            + 1721088.5
        # 時間(小数)部分計算
        t = (sec / 3600.0 + min / 60.0 + hour) / 24.0
        return jd + t
      rescue => e
        raise
      end
    end
=========================================================================
 年月日(グレゴリオ暦)からユリウス日(JD)を計算する

 * フリーゲルの公式を使用する
   JD = int(365.25 * year)
      + int(year / 400)
      - int(year / 100)
      + int(30.59 (month - 2))
      + day
      + 1721088
 * 上記の int(x) は厳密には、 x を超えない最大の整数
 * 「ユリウス日」でなく「準ユリウス日」を求めるなら、
   `+ 1721088` を `- 678912` とする。

 @param:  t   (Time Object)
 @return: jd  (ユリウス日)
=========================================================================