![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фигня с TDateTime [D7, Paradox]
Стас © (2003-01-21 14:26:00)Здравствуйте!
Тут обнаружил, что переменная данного типа не может хранить больше часов, чем 24. А мне надо суммировать данные за месяц в часах и минутах, которые в сумме превосходят это число и все скидывается на ноль. Как обойти это?
stone (2003-01-22 14:52:00) [1]2 Стас (22.01.03 14:06)
Тогда DecodeTime и DecodeDate тебе помогут.
Johnmen (2003-01-22 14:12:00) [2]>хотя я уже перековырял все на Float, что конечно не так
>красиво.
А чем, по-твоему, TDateTime отличается от float ?
Стас (2003-01-22 14:06:00) [3]Да, 25 часов это 1 сутки и 1 час. Но если в таком виде выводить на отчет, то вместо этих суток машина выставляет какую-то определенную дату, а это совсем не нужно.
>wman
Попробую применить, хотя я уже перековырял все на Float, что конечно не так красиво.
wman (2003-01-22 12:24:00) [4]Можно юзать DecodeTime и DecodeDate или напрямую работать с
TDateTime:
procedure TForm1.Button2Click(Sender: TObject);
var D1, D2, DT: TDateTime;
DTS: TTimeStamp;
SS, HH: Integer;
begin
D1 := StrToDateTime("10.01.2003 2:00:00");
D2 := StrToDateTime("09.01.2003 1:00:00");
DT := D1 - D2;
SS := Trunc(1440 * (DT - Trunc(DT)));
HH := Trunc(DT)* 24;
HH := HH + SS div 60;
SS := SS mod 60;
Caption := IntToStr(HH) + ":" + FormatFloat("00", SS);
end;
Chubais (2003-01-22 11:12:00) [5]Johnmen © (22.01.03 11:06)
не, тогда еще не обкакался
прочитал BlackTiger (22.01.03 10:50)
и тогда уж обкакался)))))))))))
Johnmen (2003-01-22 11:06:00) [6]Чубайс опять обкакался от смеха...:)
Anatoly Podgoretsky (2003-01-22 10:56:00) [7]BlackTiger (22.01.03 10:50)
TDateTime нормально хранит это, нет нужды делать извращение с INTEGER
Стас (22.01.03 07:19)
Хинт: время по милитаристкой шкале индициуется как значение в диапазоте от 00:00:00 до 23:59:00, а у тебя какая шкала?
BlackTiger (2003-01-22 10:50:00) [8]Сильно, сильно...
На то оно и DateTime, что бы хранить только 24 часа!
Слабо "56-е число 45-го месяца 56 часов 87 минут 134 секунды"?
Хранить это добро надо в INTEGER (в секундах, минутах, часах), а не в DateTime.
Chubais (2003-01-22 10:40:00) [9]ААААААААААААААААААААААААААААА!!!!!!!!!!!!!!!!!!!
stone (2003-01-22 09:20:00) [10]
> Но 25 часов превращаются в 1 час.
25 часов превращаютсяв 1 день и 1 час. Если ты показываешь только время, то дней ты, естественно не увидишь.
Max Zyuzin (2003-01-22 09:09:00) [11]>Стас (21.01.03 14:26)
Покажи пожалуйста как ты сумируешь часы в программе..
Anatoly Podgoretsky (2003-01-22 07:41:00) [12]У тебя ошибка в программе.
Стас (2003-01-22 07:19:00) [13]Она может хранить дни и часы. Вроде так. Но 25 часов превращаются в 1 час.
Fiend (2003-01-21 14:30:00) [14]единственный способ - ЗАСТРЕЛИТЬСЯ!
Anatoly Podgoretsky (2003-01-21 14:28:00) [15]Потому что она хранит не часы а дни, в дробном виде, но на ноль ничего не скидывается, это у тебя ошибка в программе.