Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
14-1134870211
Джо
2005-12-18 04:43
2006.01.15
Хитроумный код - ваше отношение


10-1110887923
Eleonore
2005-03-15 14:58
2006.01.15
Формулы Excel в Delphi


14-1134971578
Progger
2005-12-19 08:52
2006.01.15
Мессага боссу о контрафакте


2-1135592875
Alex_KV
2005-12-26 13:27
2006.01.15
Как перевести код С


3-1132304599
Ярослав
2005-11-18 12:03
2006.01.15
Как в SQL уменьшить/увеличить время на 1 час





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский