|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Модель автостоянки. DBGrid, разность между датой/временем
Спасибо большое!
Последний раз редактировалось EGKR, 24.02.2016 в 17:17. |
#2
|
||||
|
||||
Сама формула вычисления несложная. Нужно подключить модуль DateUtils и взять из него функцию MinutesBetween(НачДата,КонДата).
Вычесть из полученных минут льготные 15 минут. Получить часы разделив получившееся число на 60 и результат умножить на тариф часа. Тут есть один нюанс, количество минут не всегда ровно разделится на часы и что делать с остатком решайте сами. А вот вычисляемое поле в Дельфи делается не так. Если доберетесь до этого абзаца - продолжим. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Спасибо большое!
Последний раз редактировалось EGKR, 24.02.2016 в 17:17. |
#4
|
||||
|
||||
Да, в DBText2.Caption вы получите количество минут между этими двумя датами. Обычное деление предполагает нецилочисленный результат в финале, даже если делить без остатка. Потому надо использовать
Код:
DBText2.Caption:=FloatToStr(Result/60) Код:
DBText2.Caption:=IntToStr(Result div 60) Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
||||
|
||||
А что касается вычисляемого поля в Дельфи. То делается это так:
На форме у вас есть компонент Table. Для него запускаете Редактор полей и добавляете все поля, после чего добавляете в нем новое поле типа Currency (считать мы будем стоимость) и выставляем для него флаг Calculated и назовем это поле Price. У компонента Table есть событие OnCalcFields и в нем мы напишем такой вот код: Код:
procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet); begin DataSet['Price'] := (MinutesBetween(DataSet['Time_stop'], DataSet['Time']) - 15) / 60 * 5; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
EGKR (24.02.2016)
|