![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычисления с TDateTime [D6, Win2k]
NightCon © (2002-09-19 13:10:00)Такая вот проблемка: нужно вычислить кол-во рабочих часов в периоде, заданном в двух TDateTime, но всю малину портит то, что при этом нужно учитывать, что в смене 8 часов, и еще есть праздники, рабочие выходные и т.д.
qube (2002-09-19 13:33:00) [21]PrazdnikHours откуда возьмешь?
Separator (2002-09-19 13:30:00) [22]Я бы на твоем месте сделал так:
{Date1>Date2, Uses -> TimeUtil}
PrazdnikHours:= //Количество праздничных часов
RabHours:= trunc(TDateTimeToCTime(Date2-Date1)/3600)-PrazdnikHours;
lenin (2002-09-19 13:26:00) [23]
> NightCon (19.09.02 13:20)
Делаешь таблицу, в каторой указываешь все выходные, праздники, ... Вычесляешь количество дней между двумя датами. Перебераешь таблицу, и проверяешь попдает дата в промежуток, или нет. Если поподает, то из количества дней отнимаешь один. Оставшиеся дни умнажаешь на 8, вот и все.
Но это только так, примерно.
qube (2002-09-19 13:24:00) [24]да как угодно.
праздники, выходные вычислить нельзя -- их нужно задавать (из файла грузить, например).
Можно реализовать класс -- множество дат, которые являются выходными.
NightCon (2002-09-19 13:20:00) [25]и как ты себе это представляешь?
lenin (2002-09-19 13:20:00) [26]
> NightCon (19.09.02 13:10)
Надо делать свой календарь, в котором будут указаны все праздник, выходные, ...
Skywalker (2002-09-19 13:18:00) [27]ну и в чем проблема? отнимаешь праздники, выходные и 16 часов с каждых суток и получаешь результат