Source code for badidatetime.julian_period

# -*- coding: utf-8 -*-
#
# badidatetime/julian_period.py
#
__docformat__ = "restructuredtext en"


[docs] class JulianPeriod: """ Implementation of the Julian Period. This Julian period is said to be named after Julius Cæsar Scaliger, the father of Josephus Justus Scaliger (Born: August 5, 1540, Agen, France), who invented the concept. The Julian Period is related to the Julian Calendar introduced by Julius Caesar, but it is not the same. See https://quasar.as.utexas.edu/BillInfo/JulianDatesG.html https://core2.gsfc.nasa.gov/time/julian.html https://www.tondering.dk/claus/cal/julperiod.php """ # January 1, 2000, at 12:00 TT (Terrestrial Time) # TAI = TT - 32.184 seconds # January 1, 2000, 11:59:27.816 TAI (International Atomic Time) # January 1, 2000, 11:58:55.816 UTC (Coordinated Universal Time) # See: https://aa.usno.navy.mil/faq/sun_approx _JULIAN_EPOCH = 0 # This is the actual Julian Epoch _J2000 = 2451545.0 # TDT # 28 (solar cycle) × 19 (lunar cycle) × 15 (indiction cycle) = 7980 years _JULIAN_YEAR = 365.25 _JULIAN_LEAP_YEAR = lambda self, year: year % 4 == 0
[docs] def _julian_centuries(self, jde: float) -> float: """ Calculate the Julian centuries from the Julian day. :param float jde: The Julian Period day. :returns: The Julian century relative to the day. :rtype: float """ return (jde - self._J2000) / 36525
[docs] def _julian_millennia(self, jde: float) -> float: """ Calculate the Julian millennia from the Julian day. :param float jde: The Julian Period day. :returns: The Julian millennia relative to the day. :rtype: float """ return (jde - self._J2000) / 365250