Главная страница
    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.038 c
1-1097602258
Wish
2004-10-12 21:30
2004.10.31
Ошибка!!!


1-1097756982
BFG9k
2004-10-14 16:29
2004.10.31
ToolBar: кнопки справа


1-1097737737
Senti
2004-10-14 11:08
2004.10.31
Как принудительно убрать HScrollBar в ListView


3-1096965656
Mitrofan
2004-10-05 12:40
2004.10.31
Утилита которая показывает загрузку сервера Firebird


4-1096278232
DelphiLexx
2004-09-27 13:43
2004.10.31
Загруженность CPU





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский