#ifndef orbit_time #define orbit_time #include <ctime> #include "SystemCoords.h" struct orbit_date { int years; int mounts; int days; int hours; int min; int sec; }; class Ot { private: const double m_correction = 69.184; // �������� ����������� �������� ��������� ����� TAI ������������ UTC � �������� ��������� ����� TT ������������� TAI std::timespec c_time{ 0,0 }; ConvertSC m_matrix{}; public: Ot() { std::timespec_get(&c_time, TIME_UTC); }; ~Ot() {}; double getCurrent_US(double time_zone = 0) { std::timespec_get(&c_time, TIME_UTC); return (double(c_time.tv_sec)+ time_zone *3600 + c_time.tv_nsec * pow(10, -9)); }; double getCurrent_MJD(double time_zone =0) { return convert_JD_to_MJD(convert_US_to_JD(getCurrent_US(time_zone))); }; double getCurrent_TT(double time_zone = 0) { return (getCurrent_MJD(time_zone) + m_correction / double(86400)); } double getCurrent_TDB(double time_zone = 0); double GMST(double deltuUT); double GTST(double inputGMST); //input_time must be in the format US double convert_US_to_JD(double input_time, double time_zone = 0) { return (2440587.5 + (input_time + time_zone *3600) / double(86400)); }; //input_time must be in the format JD double convert_JD_to_MJD(double input_time) { return (input_time - 2400000.5); }; //input_time must be in the format MJD double convert_MJD_to_TT(double input_time) { return (input_time + m_correction / double(86400)); } //input_time must be in the format TT double convert_TT_to_TDB(double input_time); double convert_GDs_to_MJD(orbit_date input_time); }; #endif // !orbit_time.h