Главная страница
    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.039 c
14-1096481984
Sergey_Masloff
2004-09-29 22:19
2004.10.31
Почти как в анекдоте


14-1097672894
vecna
2004-10-13 17:08
2004.10.31
Менты с игрушечными пестиками...


14-1097654598
aleshap
2004-10-13 12:03
2004.10.31
Защита


6-1093242984
MiniTex
2004-08-23 10:36
2004.10.31
Слежение за поротом или его закрытие


14-1097305958
QuasiLamo
2004-10-09 11:12
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский