Показать сообщение отдельно
  #2  
Старый 25.06.2007, 10:04
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 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;
Ответить с цитированием