Вниз
Скачать: CL | DM;

Сложение TTime   Найти похожие ветки 

← →
Pashkerton   (2004-10-19 09:38) [0]

Доброе утро. Пусть есть такая последовательность из типов TTime:
10:56:20
7:00:15
4:43:46
10:06:02
10:44:07
2:28:11
Как её корректно просуммировать. TTime не поддерживает > 24    часов. Пытался переводить TTime в double. Сумма получается некорректная.


← →
Rem   (2004-10-19 09:49) [1]

>>TTime не поддерживает > 24    часов

24 часа = 1 сутки

>>Пытался переводить TTime в double

TTime = type double;


← →
Алхимик ©   (2004-10-19 09:53) [2]

TTime = TDateTime = Double


← →
Pashkerton   (2004-10-19 09:58) [3]

Переводил так:
hhmm: double
Функция где result := int(hhmm) + (frac(hhmm) / 0.6);
1.30 => 1.5 (1h.30m = 1.5h)


← →
Pashkerton   (2004-10-19 10:02) [4]

При операции
TimeToStr(StrToTime("15:00:00")+StrToTime("15:00:00"))
результат бедет 6:00:00. А мне нужно 30:00:00


← →
VMcL ©   (2004-10-19 10:05) [5]

>>Pashkerton  (19.10.04 09:38)

К исходному времени прибавить требуемое, переведенное в секунды, если не ошибаюсь.


← →
ЮЮ ©   (2004-10-19 10:09) [6]

TTime - это только дробная часть - доля суток, отсюда и пляши


← →
Алхимик ©   (2004-10-19 10:09) [7]


> [4] Pashkerton   (19.10.04 10:02)
> При операции
> TimeToStr(StrToTime("15:00:00")+StrToTime("15:00:00"))
> результат бедет 6:00:00. А мне нужно 30:00:00

Эта функция переводит время в строку.
Воспользуйся DateTimeToStr или FormatDateTime.


← →
DiamondShark ©   (2004-10-19 10:55) [8]

Как только вы перестанете путать два разных понятия "момент времени" и "количество времени" всё встанет на свои места.


← →
Anatoly Podgoretsky ©   (2004-10-19 11:55) [9]

Pashkerton   (19.10.04 09:38)  
TTime поддерживает > 24 часов

Pashkerton   (19.10.04 10:02) [4]
Такого времени не существует (максимум 23:59:59), неверный формат. Пиши сообственную функцию форматирования


← →
Pashkerton   (2004-10-19 12:35) [10]

TTime > 24 часов. В эту мною написанную глупость я вник, признаюсь.


← →
Pashkerton   (2004-10-19 14:39) [11]

Разобрался. Всем спасибо.
var
 T: TDateTime;
 D: integer;
 hh, mm, ss, ms: word;
begin
 T := StrToTime("10:56:20") +
     StrToTime("7:00:15")  +
     StrToTime("4:43:46")  +
     StrToTime("10:06:02") +
     StrToTime("10:44:07") +
     StrToTime("2:28:11");
 D := trunc(T) * 24;
 DecodeTime(T, hh, mm, ss, ms);          
 inc(hh, D);
 ShowMessage(Format("%.*d:%.*d:%.*d", [2, hh, 2, mm, 2, ss]));
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
14-1097518449
@BraIN
2004-10-11 22:14
2004.10.31
А у нас (канал #delphimaster) установлен рекорд посещаемости - 16


3-1096800524
InVariantian
2004-10-03 14:48
2004.10.31
Внешние объединение четырех таблиц


9-1088514463
aprm
2004-06-29 17:07
2004.10.31
DelphiX 2D и сглаживание кромок


1-1097573897
Natryb
2004-10-12 13:38
2004.10.31
Поворот текста в отчете


1-1098171808
AntonSh
2004-10-19 11:43
2004.10.31
Архивация строки




   Наверх