docs: def to_jd(dt: datetime, fmt: str = 'jd') -> float:
      """
      Converts a given datetime object to Julian date.
      Algorithm is copied from https://en.wikipedia.org/wiki/Julian_day
      All variable names are consistent with the notation on the wiki page.
  
      Parameters
      ----------
      fmt
      dt: datetime
          Datetime object to convert to MJD
  
      Returns
      -------
      jd: float
      """
      a = math.floor((14-dt.month)/12)
      y = dt.year + 4800 - a
      m = dt.month + 12*a - 3
  
      jdn = dt.day + math.floor((153*m + 2)/5) + 365*y + math.floor(y/4) - math.floor(y/100) + math.floor(y/400) - 32045
  
      jd = jdn + (dt.hour - 12) / 24 + dt.minute / 1440 + dt.second / 86400 + dt.microsecond / 86400000000
  
      return __to_format(jd, fmt)