CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
julian_day.hpp File Reference
#include <array>
#include <cassert>
#include <chrono>
#include <cmath>
#include <cstdint>
#include <format>
#include <limits>
#include <stdexcept>
#include "delta_t.hpp"
#include "leap_second.hpp"
#include "ymd.hpp"
#include "datetime.hpp"

Classes

struct  astro::julian_day::Times
 Modelled UT1 and TT at the same instant, in Julian days. More...

Namespaces

namespace  astro
namespace  astro::julian_day

Enumerations

enum class  astro::julian_day::Scale : uint8_t { astro::julian_day::UTC , astro::julian_day::UT1 }
 The explicitly declared scale of a civil datetime. More...

Functions

auto astro::julian_day::ut1_to_jd (const calendar::Datetime &ut1_dt) -> double
 Convert UT1 datetime to julian day number.
auto astro::julian_day::jd_to_ut1 (const double jd) -> calendar::Datetime
 Convert julian day number to UT1 datetime.
auto astro::julian_day::tt_to_jde (const calendar::Datetime &tt_dt) -> double
 Converts a TT datetime to julian ephemeris day number.
auto astro::julian_day::jde_to_tt (const double jde) -> calendar::Datetime
 Converts a julian ephemeris day number to TT datetime.
auto astro::julian_day::civil_to_tt (const calendar::Datetime &civil_dt, const Scale scale, const astro::delta_t::Model model=astro::delta_t::DEFAULT_MODEL) -> calendar::Datetime
 Convert one explicitly scaled civil datetime to TT, with strict modern UTC admission.
auto astro::julian_day::resolve_times (const calendar::Datetime &civil_dt, const Scale scale, const astro::delta_t::Model model=astro::delta_t::DEFAULT_MODEL) -> Times
 Resolve UT1 and TT without additional civil-year or derived-TT admission policy.
auto astro::julian_day::jde_to_ut1 (const double jde) -> calendar::Datetime
 Converts a julian ephemeris day number to UT1 datetime.
auto astro::julian_day::ut1_to_jde (const calendar::Datetime &ut1_dt) -> double
 Converts a UT1 datetime to julian ephemeris day number.
auto astro::julian_day::jde_to_utc (const double jde) -> calendar::Datetime
 Converts a julian ephemeris day number to UTC datetime.
auto astro::julian_day::utc_to_jde (const calendar::Datetime &utc_dt) -> double
 Converts a UTC datetime to julian ephemeris day number.
auto astro::julian_day::utc_year_start_jde (const std::chrono::year year) -> double
 Return the JDE(TT) of January 1 at 00:00 UTC in a calendar year.
auto astro::julian_day::validate_annual_year (const int32_t year) -> void
 Validate a Gregorian year for an annual (whole-year) query.
auto astro::julian_day::utc_year_jde_window (const int32_t year) -> std::array< double, 2 >
 Return the half-open UTC year window expressed as JDE(TT) bounds.
constexpr auto astro::julian_day::jde_to_jm (const double jde) -> double
 Converts a julian ephemeris day number to julian millennium.
constexpr auto astro::julian_day::jm_to_jde (const double jm) -> double
 Converts a julian millennium to julian ephemeris day number.
constexpr auto astro::julian_day::jde_to_jc (const double jde) -> double
 Converts a julian ephemeris day number to julian century.
constexpr auto astro::julian_day::jc_to_jde (const double jc) -> double
 Converts a julian century to julian ephemeris day number.

Variables

constexpr double astro::julian_day::J2000
 The julian day number of 2000-01-01, 12:00:00.0 (noon).
constexpr double astro::julian_day::DAYS_PER_JULIAN_CENTURY
 The number of days in one Julian century (36525 days).