Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Как считать и хранить время работы программы?   Найти похожие ветки 

 
User9   (2005-12-25 00:14) [0]

Когда программа начинает выполнять какое-то действие нужно запомнить время с точьностью до секунд, посчитать сколько времени действие выполнялось, записать время в лог и при следующем запуске делать тоже самое. Чтобы можно было всегда знать сколько времени работала программа. Как проще это сделать? TDateTime дает дату и время, а мне нужны и минуты с секундами. И как их складывать?


 
Джо ©   (2005-12-25 00:16) [1]


> TDateTime дает дату и время

TDateTime хранит даже миллисекунды.


 
User9   (2005-12-25 00:19) [2]

А как его в моем случае использовать? Я честно читал хельп, но без примера трудно.


 
Джо ©   (2005-12-25 00:27) [3]

Разбей задачу на составляющие, а то не понятно, о чем ты спрашиваешь. Ну, вот, например, функция Now возращает типа TDateTime, в котором хранится текущая на момент вызова отметка времени.


 
Джо ©   (2005-12-25 00:29) [4]


> функция Now возращает типа TDateTime

функция Now возращает значение типа TDateTime


 
User9   (2005-12-25 00:46) [5]

Ну, например, нажал кнопку, получил текущее время Now, затем нажал кнопку еще раз, опять получил текущее время. Надо узнать сколько прошло времени между кликами и сохранить его. Затем повторить клики и сложить сохраненное время с вновь полученым.
Я не понимаю как его складывать и в каких переменных хранить.


 
SEN ©   (2005-12-25 01:42) [6]

Может так?
var
 T, T1: TDateTime;

procedure TForm1.Button1Click(Sender: TObject);
begin
 T := Time;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Label1.Caption := TimeToStr(Time - T);
end;


 
Anatoly Podgoretsky ©   (2005-12-25 09:30) [7]

User9   (25.12.05 00:46) [5]
Разницу получают с помощью вычитания, а сумму с помощью сложения.


 
alex_*** ©   (2005-12-25 12:21) [8]

а минус на минус дает плюс


 
Кефир87 ©   (2005-12-25 13:43) [9]

Извините что влезаю 8) Но есть функция GetTickCount, которая возвращает кол-во милисекунд работы виндовз. Так вот если запомнить это значение в начале работы программы, а в конце отнять это значение от текущего, то узнаем сколько милисекунд работала программа 8) Надеюсь проблем с переводом из мс во что-то другое не будет 8)


 
User9   (2005-12-25 14:14) [10]


> Разницу получают с помощью вычитания, а сумму с помощью
> сложения.
> а минус на минус дает плюс

Я про это слышал.

> есть функция GetTickCount, которая возвращает кол-во милисекунд
> работы виндовз.

Вот как-нибудь все это еще скомпоновать в строчки кода...
Я еще слышал что значение возвращаемое GetTickCount в какой-то момент обнуляется и начинается с нуля снова.
А как быть если общее время превысит год?


 
Кефир87 ©   (2005-12-25 14:37) [11]


> Вот как-нибудь все это еще скомпоновать в строчки кода..
> .


// Начало программы
b_time := GetTickCount;
...
// Конец программы
p_time := GetTickCount - b_time;
// В p_time - кол-во мс работы программы



> Я еще слышал что значение возвращаемое GetTickCount в какой-
> то момент обнуляется и начинается с нуля снова.

Ну естественно. Число Cardinal тоже не бесконечное 8)



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
14-1135245152
pavel_guzhanov
2005-12-22 12:52
2006.01.15
Как возвести число а дробную степень?


4-1131478669
Wolfram
2005-11-08 22:37
2006.01.15
Где хранить глобальные данные в DLL?


6-1127696360
Viktop
2005-09-26 04:59
2006.01.15
Монитор порта


3-1132575352
Stanislav
2005-11-21 15:15
2006.01.15
ADO вызов окна настройки подключения


14-1134210073
SergP.
2005-12-10 13:21
2006.01.15
Даунлоад на php. Подсчет кол-во скачиваний.