Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

Добавить к TDateTime несколько минут   Найти похожие ветки 

 
Guest7   (2003-07-18 13:39) [0]

Добрый день!
Проблема такая: нужно в цикле добавлять к определённой дате несколько минут, делаю так

DT:TDateTime;

...

for i:=0 to xxx do
begin
DT:=DT+minutes/1440;
...
end;

Так вот, при больших xxx время начинает сбиваться,
подскажите как правильно добавить.


 
Виктор Щербаков ©   (2003-07-18 13:42) [1]

function IncMinute(const AValue: TDateTime;
const ANumberOfMinutes: Int64): TDateTime;
begin
Result := ((AValue * MinsPerDay) + ANumberOfMinutes) / MinsPerDay;
end;


 
VAleksey ©   (2003-07-18 13:42) [2]

см
DecodeDate
EncodeDate
F1


 
VAleksey ©   (2003-07-18 13:43) [3]

Сорри, можно проще
DecodeTime
EncodeTime


 
Guest7   (2003-07-18 13:48) [4]

to Виктор Щербаков
А чем Ваше решение отличается от моего

MinsPerDay = 1440

to VAleksey

но нужно наращивать и дни если перевалии за 24:00, а как проще сделать, одной строкой.


 
Guest7   (2003-07-18 13:58) [5]

Ну что? Вариантов нет?


 
Verg ©   (2003-07-18 14:03) [6]


> for i:=0 to xxx do
> begin
> DT:=DT+minutes/1440;
> ...
> end;
>
> Так вот, при больших xxx время начинает сбиваться,
> подскажите как правильно добавить.


Откажись от наращивания DT - здесь накапливается ошибка при делении на 1440 (суммируешь и ошибку тоже и при больших i ошибка
будет равна i*<ошибка одного деления>).

Для любого i получай нужную дату
как DT+(minutes*i)/1440
Ошибка будет минимальной.


 
Verg ©   (2003-07-18 14:06) [7]

Точнее
DT+(minutes*(i+1))/1440

(т.к. цикл от i:=0)


 
Guest7   (2003-07-18 14:12) [8]

to Verg

Спасибо большое! Работает! Блин сам как-то недодумался.



Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
8-100839
[Baradoo]
2003-03-18 22:48
2003.07.31
Растягивание Wave на определенную длину...


1-100810
vil
2003-07-17 13:11
2003.07.31
Поменять свойства у однаковых компонентов


14-100974
Merrydock
2003-07-15 22:06
2003.07.31
Проблема с Dephi 6


1-100763
KILLER_ABV
2003-07-15 15:25
2003.07.31
TStringGrid печать


14-100889
Soft
2003-07-16 11:29
2003.07.31
Скажи мне какой товар ты предпочитаешь и я скажу кто ты.