Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.06.2007, 08:43
aleksnine aleksnine вне форума
Начинающий
 
Регистрация: 08.03.2007
Сообщения: 151
Репутация: 12
По умолчанию Сложение продолжительности

Привет.
Подскажите как сложить например -
12:56 + 4:57
И если в сумме будет более 60 мин то преобразить к виду -
часы:минуты:секунды
Спасибо
Ответить с цитированием
  #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;
Ответить с цитированием
  #3  
Старый 25.06.2007, 12:06
aleksnine aleksnine вне форума
Начинающий
 
Регистрация: 08.03.2007
Сообщения: 151
Репутация: 12
По умолчанию

Спасибо
Ответить с цитированием
  #4  
Старый 26.06.2007, 15:28
Burka Burka вне форума
Начинающий
 
Регистрация: 10.06.2007
Сообщения: 163
Репутация: 10
По умолчанию Смешно!!!

Var s:string;
s:= TimeToStr(StrTOTime('12:30')+StrToTime('1:30'));
//S при этом будет равно '14:00:00', последние два нолика это секунды

Последний раз редактировалось Burka, 26.06.2007 в 15:35.
Ответить с цитированием
  #5  
Старый 05.08.2007, 22:32
aleksnine aleksnine вне форума
Начинающий
 
Регистрация: 08.03.2007
Сообщения: 151
Репутация: 12
По умолчанию

Хм.
А почему выскакивает ошибка если брать
s:= TimeToStr(StrTOTime('47:30')-StrToTime('15:30'));
а если брать меньшее время то все норм . Например
s:= TimeToStr(StrTOTime('07:30')-StrToTime('15:30'));
Ответить с цитированием
  #6  
Старый 05.08.2007, 23:03
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Потому что сутка только 24 часа, к сожалению, 47 - не может быть. Время складывавется в виде ЧЧ:ММ, Ч - часы, М - минуты...

Ну я и написал, наверное, в неадеквате был =) Должно было быть так:

Потому что, в сутках только 24 часа, к сожалению, а не 47. Время складывавется в виде ЧЧ:ММ, Ч - часы, М - минуты...

=)
__________________
THE CRACKER IS OUT THERE

Последний раз редактировалось 4kusNick, 06.08.2007 в 22:07.
Ответить с цитированием
  #7  
Старый 06.08.2007, 10:14
aleksnine aleksnine вне форума
Начинающий
 
Регистрация: 08.03.2007
Сообщения: 151
Репутация: 12
По умолчанию

А понятно , спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:29.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025