Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
ВнизВремя работы программы Найти похожие ветки
← →
Troan_81 (2007-03-20 20:59) [0]Всем привет!
Мастера подскажите пожалуйста, как можно определить сколько времени было затрачено на выполнение какой-либо операции?
Например:
Старт: 21:00:00
Стоп : 22:00:00
Итого: 1 час
← →
Virgo_Style © (2007-03-20 21:06) [1]
StartTime:=Now;
...
FinishTime:=Now;
← →
Troan_81 (2007-03-20 21:13) [2]Уважаемый Virgo_Style, спасибо за ответ!
Для меня оно очень большое значение имеет. Спасибо!
Первый оператор понятно - запоминает, точнее получает текущее время.
Второй тоже - как бы обновляет.
Но хотелось бы немного "живого"
Я немного не могу понять в следующем коде, совсем запутался:
var
OperBegin, OperEnd: TTimeStamp;
Total: LongWord;
begin
OperBegin := DateTimeToTimeStamp(Now); {запоминается момент начала операции}
{Здесь размещается оператор, который выполняется в цикле}
OperEnd := DateTimeToTimeStamp(Now); {запоминается момент окончания операции}
Total := OperEnd.Time - OperBegin.Time;
end;
Для этого использую компонент Statusbar1. В первую ячейку время старта, а во вторую результат. Что-то не получается сформатировать строчку. Помогите пожалуйста!
← →
Troan_81 (2007-03-20 22:07) [3]Никто не знает, или никто не хочет мне помочь?
← →
RASkov (2007-03-20 22:27) [4]> [3] Troan_81 (20.03.07 22:07)
StatusBar.Panels[0].Text := TimeToStr(Time);
OperBegin := DateTimeToTimeStamp(Now);
{Здесь размещается оператор, который выполняется в цикле}
OperEnd := DateTimeToTimeStamp(Now);
StatusBar.Panels[1].Text := Format("%d мсек.", [OperEnd.Time-OperBegin.Time]);
← →
Германн © (2007-03-21 01:12) [5]Вот будет здорово, если цикл начнется в 23:59, а закончится в 00:01 :)
← →
Asail (2007-03-21 12:22) [6]
> Вот будет здорово, если цикл начнется в 23:59, а закончится
> в 00:01 :)
var
OperBegin : TDateTime;
begin
OperBegin := Now;
. . .
StatusBar.Panels[1].Text := FormatDateTime("hh:ss:zzz", [Abs(Now-OperBegin)]);
Если так - то здорово уже не будет :-)
P.s. А если FormatDateTime("dd/mm/yyyy hh:ss:zzz", то проблем не будет даже если цикл бежит дни, месяцы, а то, и годы :-)))
← →
homm © (2007-03-21 13:09) [7]> Мастера подскажите пожалуйста, как можно определить сколько
> времени было затрачено на выполнение какой-либо операции?
var t: DWORD;
begin
T := GetTickCount();
// какая-либо операция
T := GetTickCount()-T;
Теперь Т - количество милисекунд, потраченых на выполнение, Т/1000 - количетво секунд, Т/(60*1000) - количество минут, и т.д.
← →
RASkov (2007-03-21 13:09) [8]> то проблем не будет даже если цикл бежит дни, месяцы, а
> то, и годы :-)))
Столько винда не проживет :) с такими циклами.
:)
← →
Asail (2007-03-21 15:18) [9]
> Столько винда не проживет :) с такими циклами.
Ну, почему - есть сервисы, которые бегут пока их не остановят. Иногда бывает нужно подсчитать время жизни такого сервиса.
Да и любое другое приложение может иметь такие циклы.
repeat
try
HandleMessage;
except
HandleException(Self);
end;
until Terminated;
ничего не напоминает?
← →
RASkov (2007-03-21 15:53) [10]> [9] Asail (21.03.07 15:18)
Я о стабильности работы ОС. Вообщем моя шутка, так понял, не прошла :(
← →
Asail (2007-03-21 15:55) [11]
> Вообщем моя шутка, так понял, не прошла :(
Пардон
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c