CNtpTime::operator SYSTEMTIME() const { // Currently this function only operates correctly in // the 1900- 2036 primary epoch defined by NTP SYSTEMTIME st; DWORD s = Seconds(); st.wSecond = (WORD)( s % 60 ); s /= 60; st.wMinute = (WORD)( s % 60 ); s /= 60; st.wHour = (WORD)( s % 24 ); s /= 24; long JD = s + JAN_1ST_1900; st.wDayOfWeek = (WORD)( ( JD + 1 ) % 7 ); GetGregorianDate( JD, st.wYear, st.wMonth, st.wDay ); st.wMilliseconds = NtpFractionToMs( Fraction() ); return st; }
static void getDate(uint32_t sec,struct stime* time) { long JD; parseTimeZone(&sec,time); sec +=retPeriodofYearTime(time); time->sec_1990 = sec; time->sec = (uint32_t)(sec % 60); sec /= 60; time->min = (uint32_t)(sec % 60); sec /= 60; time->hour = ((uint32_t)(sec % 24)); sec /= 24; JD = sec + JAN_1ST_1900; GetGregorianDate(JD, time); }