![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Привет.
Подскажите как сложить например - 12:56 + 4:57 И если в сумме будет более 60 мин то преобразить к виду - часы:минуты:секунды Спасибо |
|
#2
|
||||
|
||||
|
Код:
// Формат переменных должен быть вида 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; |
|
#3
|
|||
|
|||
|
Спасибо
![]() |
|
#4
|
|||
|
|||
|
Var s:string;
s:= TimeToStr(StrTOTime('12:30')+StrToTime('1:30')); //S при этом будет равно '14:00:00', последние два нолика это секунды Последний раз редактировалось Burka, 26.06.2007 в 15:35. |
|
#5
|
|||
|
|||
|
Хм.
А почему выскакивает ошибка если брать s:= TimeToStr(StrTOTime('47:30')-StrToTime('15:30')); а если брать меньшее время то все норм . Например s:= TimeToStr(StrTOTime('07:30')-StrToTime('15:30')); |
|
#6
|
||||
|
||||
|
Потому что сутка только 24 часа, к сожалению, 47 - не может быть. Время складывавется в виде ЧЧ:ММ, Ч - часы, М - минуты...
Ну я и написал, наверное, в неадеквате был =) Должно было быть так: Потому что, в сутках только 24 часа, к сожалению, а не 47. Время складывавется в виде ЧЧ:ММ, Ч - часы, М - минуты... =) Последний раз редактировалось 4kusNick, 06.08.2007 в 22:07. |