getJulianDay method

JulianDay getJulianDay()

获取儒略日

Implementation

JulianDay getJulianDay() {
  int y = year;
  int m = month;

  if (m <= 2) {
    m += 12;
    y -= 1;
  }

  int b = 0;
  if (y * 10000 + m * 100 + day >= 15821015) {
    int a = (y / 100).floor();
    b = 2 - a + (a / 4).floor();
  }

  double jd =
      (365.25 * (y + 4716)).floor() +
      (30.6001 * (m + 1)).floor() +
      day +
      b -
      1524.5;

  // 加上时分秒的部分
  jd += hour / 24.0 + minute / 1440.0 + second / 86400.0;

  return JulianDay(jd);
}