![]() |
|
|
Регистрация | << Правила форума >> | 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. Время складывавется в виде ЧЧ:ММ, Ч - часы, М - минуты... =) THE CRACKER IS OUT THERE Последний раз редактировалось 4kusNick, 06.08.2007 в 22:07. |