Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.47 MB
Время: 0.031 c
14-1080722604
Rule
2004-03-31 12:43
2004.04.25
нужны красивые иконки


14-1080808718
Rule
2004-04-01 12:38
2004.04.25
Пробелмма с установкой программ инсталлшеилда


14-1080636815
able
2004-03-30 12:53
2004.04.25
DelphiWorld 5.0


3-1080796265
DrAculenok
2004-04-01 09:11
2004.04.25
Не могу заInsertить данные:


3-1080539971
Orc
2004-03-29 09:59
2004.04.25
Лист Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский