#ifndef m_time #define m_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 timespec c_time{ 0,0 }; ConvertSC m_matrix{}; public: Ot() { timespec_get(&c_time, TIME_UTC); }; ~Ot() {}; //������� ����� � UNIX ���������, ������� �������� - ������� ���� double getCurrent_US(double time_zone = 0) { 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 = 0); //������ �������� ������������ �������� ����� 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); double convert_MJD_to_TDB(double input_time); double convert_MJD_to_GMST(double input_MJD, double deltaUT = 0); double convert_GMST_to_GTST(double input_MJD, double input_GMST); double convert_MJD_to_GTST(double input_MJD, double deltaUT = 0); }; #endif // !orbit_time.h