Convert time() <=> NTP time
От: KuzyaV Россия  
Дата: 13.11.11 15:23
Оценка:
Помогите преобразовать текущее время, возвращаемое time() в формат NTP-времени.
NTP-время — это 64-битное беззнаковое число, первые 32 бита — количество секунд, прошедшее от 00:00 1 января 1900 года,
вторые 32-бита — количество милисекунд.
typedef struct NTPTime {
  unsigned long sec;
  unsigned long msec;
};

time() возвращает количество секунд прошедшее с полуночи 1 января 1970 года.
Как получить милисекуды?
Re: Convert time() <=> NTP time
От: Kuzya_vl Россия  
Дата: 13.11.11 18:59
Оценка:
Здравствуйте, KuzyaV, Вы писали:

KV>Помогите преобразовать текущее время, возвращаемое time() в формат NTP-времени.

KV>NTP-время — это 64-битное беззнаковое число, первые 32 бита — количество секунд, прошедшее от 00:00 1 января 1900 года,
KV>вторые 32-бита — количество милисекунд.
KV>
typedef struct NTPTime {
KV>  unsigned long sec;
KV>  unsigned long msec;
KV>};

KV>time() возвращает количество секунд прошедшее с полуночи 1 января 1970 года.
KV>Как получить милисекуды?
static const DWORD deltaDay = 25567;    // количество дней между 01.01.1900 и 01.01.1970
static const DWORD secOfDay = 86400;    // количество секунд в дне
NTPTime TimeToNTPTime(__time32_t t)
{
    SYSTEMTIME    st;
    NTPTime        ntp;
    GetSystemTime(&st);
    ntp.sec = deltaDay*secOfDay+t;
    ntp.msec = st.wMilliseconds;
    return ntp;
}
Re[2]: Convert time() <=> NTP time
От: Centaur Россия  
Дата: 14.11.11 15:47
Оценка:
Здравствуйте, Kuzya_vl, Вы писали:

KV>>time() возвращает количество секунд прошедшее с полуночи 1 января 1970 года.

KV>>Как получить милисекуды?

K_>    GetSystemTime(&st);


Где в исходном посте написано, что допустимо решение для Windows?
Re[3]: Convert time() <=> NTP time
От: dcb-BanDos Россия  
Дата: 15.11.11 10:30
Оценка:
Здравствуйте, Centaur, Вы писали:

C>Здравствуйте, Kuzya_vl, Вы писали:


KV>>>time() возвращает количество секунд прошедшее с полуночи 1 января 1970 года.

KV>>>Как получить милисекуды?

C>
K_>    GetSystemTime(&st);


C>Где в исходном посте написано, что допустимо решение для Windows?


а где написано что недопустимо?
Ничто не ограничивает полет мысли программиста так, как компилятор.
Re: Convert time() <=> NTP time
От: ДимДимыч Украина http://klug.org.ua
Дата: 15.11.11 12:02
Оценка:
Здравствуйте, KuzyaV, Вы писали:

KV>time() возвращает количество секунд прошедшее с полуночи 1 января 1970 года.

KV>Как получить милисекуды?

gettimeofday().
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[4]: Convert time() <=> NTP time
От: rg45 СССР  
Дата: 15.11.11 12:51
Оценка:
Здравствуйте, dcb-BanDos, Вы писали:

KV>>>>time() возвращает количество секунд прошедшее с полуночи 1 января 1970 года.

KV>>>>Как получить милисекуды?

C>>
K_>    GetSystemTime(&st);


C>>Где в исходном посте написано, что допустимо решение для Windows?


DB>а где написано что недопустимо?


По логике вещей, если не указана конкретная платформа, значит требуется общее решение.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[4]: Convert time() <=> NTP time
От: Centaur Россия  
Дата: 15.11.11 17:16
Оценка:
Здравствуйте, dcb-BanDos, Вы писали:

C>>Где в исходном посте написано, что допустимо решение для Windows?

DB>а где написано что недопустимо?

Пост в форуме С++, а не в WinAPI.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.