25#include "AstUtil/Constants.h"
43AST_CORE_CAPI
void aJDToMJD(
const JulianDate& jd, ModJulianDate& mjd);
47AST_CORE_CAPI
void aMJDToJD(
const ModJulianDate& mjd, JulianDate& jd);
75AST_CORE_CAPI
void aDateTimeToJD(
const DateTime& dttm, JulianDate& jd);
79AST_CORE_CAPI
void aJDToDateTime(
const JulianDate& jd, DateTime& dttm);
91 int d =
static_cast<int>(
day);
92 double second = (
day - d) * 86400.0;
93 return JulianDate::FromDaySecond(d, second);
101 int d1 =
static_cast<int>(day1);
102 int d2 =
static_cast<int>(day2);
103 double second = ((day1 - d1) + (day2 - d2)) * 86400.0;
104 return JulianDate::FromDaySecond(d1 + d2, second);
119 int d =
static_cast<int>(
day);
120 double s = (
day - d) * 86400.0;
134 return JulianDate::FromDaySecond(
static_cast<int>(
kJ2000Epoch), 0.0);
139 static JulianDate FromDateTime(
int year,
int month,
int day,
int hour,
int minute,
double second);
147 int day =
static_cast<int>(jd);
148 double second = (jd -
day) * 86400.0;
149 setDaySecond(
day, second);
152 int day()
const{
return day_;}
153 int& day(){
return day_;}
154 double second()
const {
return second_;}
155 double& second(){
return second_;}
156 void setDay(
int day){day_ =
day;}
157 void setSecond(
double sec){second_ =
sec;}
194 return ((day_ - jd) + dayFractional());
197 double daysFrom(
const JulianDate& other)
const{
198 return (*
this - other).totalDay();
201 JulianDate& operator += (
double sec)
203 this->second() += sec;
206 JulianDate& operator -= (
double sec)
208 this->second() -=
sec;
211 JulianDate operator + (
double sec)
const
213 JulianDate jd{ *
this };
217 JulianDate operator - (
double sec)
const
219 JulianDate jd{ *
this };
223 DaySecDuration operator - (
const JulianDate& other)
const
225 return {
day() - other.day(), second() - other.second()};
232 return JulianDate::FromDaySecond(day_, second_ + second);
static JulianDate FromDaySecond(double day, double second)
根据天数和秒数创建儒略日
定义 JulianDate.hpp:117
double daysFromJ2000() const
计算儒略日与 J2000.0 历元的天数差
定义 JulianDate.hpp:184
double daysFromJulianDate(double jd) const
计算儒略日与另一个儒略日的天数差
定义 JulianDate.hpp:192
double impreciseDay() const
获取不精确的天数
定义 JulianDate.hpp:143
static JulianDate FromDateTime(const DateTime &dttm)
根据日期时间创建儒略日
定义 JulianDate.hpp:125
double julianCenturyFromJ2000() const
计算儒略日与 J2000.0 历元的时间差(儒略世纪)
定义 JulianDate.hpp:180
double secondsFromJ2000() const
计算儒略日与 J2000.0 历元的时间差(秒)
定义 JulianDate.hpp:188
double dayFractional() const
获取小数部分的日数
定义 JulianDate.hpp:171
static JulianDate FromImpreciseDay(double day)
根据不精确的天数创建儒略日
定义 JulianDate.hpp:90
void setImpreciseDay(double jd)
设置不精确的天数
定义 JulianDate.hpp:146
static JulianDate FromDaySecond(int day, double second)
根据天数和秒数创建儒略日
定义 JulianDate.hpp:110
static JulianDate FromDays(double day1, double day2)
根据天数(分两部分)创建儒略日
定义 JulianDate.hpp:99
JulianDate shiftedBySecond(double second) const
计算儒略日偏移后的新儒略日
定义 JulianDate.hpp:231
static JulianDate J2000()
获取 J2000.0 历元的儒略日
定义 JulianDate.hpp:133
void setDayFractional(double df)
设置小数部分的日数
定义 JulianDate.hpp:175
void setDaySecond(int day, double second)
设置天数和秒数
定义 JulianDate.hpp:165
void getDaySecond(int &day, double &second) const
获取天数和秒数
定义 JulianDate.hpp:160
ImpreciseMJD aJDToMJD_Imprecise(ImpreciseJD jd)
将不精确的儒略日 Julian Date(MJD)转换为不精确的简约儒略日
定义 JulianDate.cpp:53
void aMJDToJD(const ModJulianDate &mjd, JulianDate &jd)
将简约儒略日转换为儒略日
定义 JulianDate.cpp:45
void aDateTimeToJD(const DateTime &dttm, JulianDate &jd)
将日期时间转换为儒略日
定义 JulianDate.cpp:83
ImpreciseJD aMJDToJD_Imprecise(ImpreciseMJD mjd)
将不精确的简约儒略日Modified Julian Date(MJD)转换为不精确的儒略日
定义 JulianDate.cpp:65
void aJDToMJD(const JulianDate &jd, ModJulianDate &mjd)
将儒略日转换为简约儒略日
定义 JulianDate.cpp:36
void aJDToDateTime(const JulianDate &jd, DateTime &dttm)
将儒略日转换为日期时间
定义 JulianDate.cpp:91
constexpr double kSecondsPerDay
一天的秒数
定义 Constants.h:227
constexpr double kJ2000Epoch
J2000历元
定义 Constants.h:37
constexpr double kDaysPerJulianCentury
儒略世纪天数
定义 Constants.h:225