Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизСколько времени прошло с момента создания файла... Найти похожие ветки
← →
3APA3A © (2004-04-05 21:44) [0]Как это сделать? В Win32API какие-то неудобоваримые функции (или я плохо искал). Выдают мне количество 100-нанасекундных интервалов, прошедших с 1 января 1601 года... Это, конечно, интересно, но как мне тогда текущее время получить в таком же формате? В общем - мне надо узнать, сколько секунд назад этот файл создали... Допустимый разброс - от 0 до 5 секунд... если он старше - этот файл меня не интересует....
← →
Verg © (2004-04-05 21:49) [1]SysUtils.FileDateToDateTime
← →
3APA3A © (2004-04-05 21:54) [2]Непонял... Ведь FileDateToDateTime выдаст мне тип Double, который по сути и есть Windows.FILETIME. Как мне текущее время преобразовать в формат FILETIME?
← →
3APA3A © (2004-04-05 22:11) [3]help me... please... =))
← →
Verg © (2004-04-05 22:17) [4]Тогда я не понимаю - что тебе надо.
FileAge возвращает дату/время создания фйла в формате ОС, а FileDateToDateTime преобразует его в привычный TDateTime
Ну, а этот формат - это сколько прошло дней (суток) с 30.12.1899 00:00:00. Да Double, ну и что смущает?
А что надо-то?
Сколько секунд прошло с момента созлдания файла?
Dt : TDateTime;
Dt := FileDateToDateTime(FileAge());
Round( (Now - Dt) * 24 * 60 * 60 ) - это в секундах, можно в минутах или в часах - сполшная арифметика....
А что надо-то?
← →
3APA3A © (2004-04-05 22:26) [5]Все равно не понял.
Вот есть у меня текущее время -
var now : _SYSTEMTIME;
Windows.GetLocalTime(now);
Есть время создания файла
var filetime : TDateTime;
filetime := FileDateToDateTime(FileAge(...));
два времени в разных форматах. Как получить разницу в секундах, минутах, часах... в чем угодно...
Кстати, почему здесь 30.12.1899 а в функции GetFileTime - с 1.01.1601 ?
← →
Verg © (2004-04-05 22:29) [6]
> var now : _SYSTEMTIME;
Объявив таким образом переменную, ты "закрыл" от себя функцию Now() (см. Help) возвращающую текущий момент времени в формате TDateTime.
> Windows.GetLocalTime(now);
И это тоже убери. Не нужно, даже вредно в данном случае
← →
Verg © (2004-04-05 22:31) [7]
> Кстати, почему здесь 30.12.1899 а в функции GetFileTime
> - с 1.01.1601 ?
Посмотри Help про TDateTime - там все написано: как, что и почему именно столько.
← →
3APA3A © (2004-04-05 22:40) [8]Ё-моё.... Now() - это функция.... Я думал ты просто забыл переменную объявить.... Теперь все ясно....
P.S. а почему GetLocalTime в данном случае вредно?
← →
Verg © (2004-04-05 22:52) [9]
> P.S. а почему GetLocalTime в данном случае вредно?
Так если все лучшим образом приспособлено под TDateTime и функция Now как раз и возвращает текущее время в этом привычном, почти родном для Дельфи формате, то зачем эти "извраты"?
Как говорится: зачем сложно, когда можно просто?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c