
25.06.2007, 10:04
|
 |
Местный
|
|
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
|
|
Код:
// Формат переменных должен быть вида xx:xx,
// где x может быть только числом, или вообще
// отсутствовать…
// Проверка на корректность данных не производится…
function TimeSumm(t1, t2: string): string;
var
m1, s1, m2, s2: byte;
hr, mr, sr: byte;
begin
m1 := 0; s1 := 0; m2 := 0; s2 := 0;
hr := 0; mr := 0; sr := 0;
if Pos(':', t1) > 1 then
m1 := StrToInt(Copy(t1, 1, Pos(':', t1)-1));
if Pos(':', t1) <> Length(t1) then
s1 := StrToInt(Copy(t1, Pos(':', t1)+1, Length(t1)));
if Pos(':', t2) > 1 then
m2 := StrToInt(Copy(t2, 1, Pos(':', t2)-1));
if Pos(':', t2) <> Length(t2) then
s2 := StrToInt(Copy(t2, Pos(':', t2)+1, Length(t2)));
sr := (s1 + s2) mod 60;
mr := ((m1 + m2) mod 60) + ((s1 + s2) div 60);
hr := (m1 + m2) div 60;
Result := Format('%.1d:%.2d:%.2d', [hr,mr,sr]);
end;
// Возможные варианты использования
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(TimeSumm('12:56', '4:57'));
// ShowMessage(TimeSumm(':56', '4:57'));
// ShowMessage(TimeSumm('12:56', '4:'));
end;
|