Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

Сложение 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 вся ветка

Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.051 c
1-1097831601
tria
2004-10-15 13:13
2004.10.31
Как картику из ImageList скопировать в Icon формы?


14-1097474949
BorisMor
2004-10-11 10:09
2004.10.31
Цвет рабочего стола.


9-1088381001
Xerx
2004-06-28 04:03
2004.10.31
OpenGL без VCL


14-1096871052
bar
2004-10-04 10:24
2004.10.31
Какой мобильник лучше и надёжнее?


1-1097819932
фывапро
2004-10-15 09:58
2004.10.31
компиляция проекта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский