Re: SystemTimeToFileTime()
От: VVV Россия  
Дата: 16.01.02 11:39
Оценка:
Здравствуйте Taleisin, Вы писали:

T>Проблема в том, что SystemTimeToFileTime() конвертает время последней модификации файла без учета часовой зоны,

T>то есть устанавливает время по Гринвичу, хотя для этого дела там существует функция FileTimeToLocalTime()
T>И в итоге получается что дата становится больше на 3 часа, а летом соответственно на 4!
T>Просто отнять эти 3 часа не получается, так как дата хранится в 64-битной структуре, а как производить всякие арифметические действия я так и не нашел!
T>Есть правда 64-битный тип LARGE_INTEGER, но это тоже union с двумя 32-битными полями..... ;-(
T>Как быть?

Про время системное и локальное вопроса не понял, но как работать с FILETIME могу сказать:
1. просто привести к 64-битному целому
#define FT_24HOUR  (864000000000ui64)

FILETIME ft;
*(unsigned __int64*)&ft=FT_24HOUR;
unsigned __int64 *pft=(unsigned __int64*)&ft;
(*pft)+=234;

//и т.д.


2. использовать MFC класс CTime
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.