Вниз
Скачать: CL | DM;

А как вычитать даты?   Найти похожие ветки 

← →
Malamba   (2003-05-08 09:32) [0]

Может, глупый вопрос, но нигде ответа я не нашел.
Есть ли в Дельфи функция типа DateDiff из VisualBasic?

Она показывает разницу между двумя датами с учетом вск, субботы.
Т. е показывает кол-во рабочих дней.


А как находить разницу между датами в Дельфи?


Александр


← →
WarLord ©   (2003-05-08 09:48) [1]

Date1-Date2=XXX.YYY, где XXX - число дней, YYY - часы, минуты, секунды и т.д.


← →
malabma   (2003-05-08 09:56) [2]

И только-то?



← →
WarLord ©   (2003-05-08 09:58) [3]

а что, мало?


← →
Malamba   (2003-05-08 10:01) [4]

Именно этого я и боялся.
А есть ли что-нибудь продвинутое, чтобы получать разницу именно в рабочих днях, без вычета суббот, воскресенья ( праздников и запоев...)

А может, я чересчур многое хочу?


← →
Zacho ©   (2003-05-08 10:05) [5]


> malabma (08.05.03 09:56)

Еще есть DaysBetween и т.п. Смотри в хелпе раздел Date/time routines


← →
Anatoly Podgoretsky ©   (2003-05-08 10:28) [6]

Много хочешь, слишком многого.


← →
Johnmen ©   (2003-05-08 10:29) [7]

Есть такая функция !
MWT:=GetMyWorkingTime(DateTimeBegin,DateTimeEnd);
эта функция учитывает не только праздники и дни твоих запоев, но и твои опоздания на работу и преждевременные уходы с нее !


← →
Bel ©   (2003-05-08 10:31) [8]

Если ты посмотришь на объявление типа TDateTime, то увидишь, что это просто число:
type TDateTime = type Double;
Поэтому к нему применима обычная арифметика.


← →
NewN ©   (2003-05-08 10:33) [9]

Если "без вычета выходных", то -WarLord © (08.05.03 09:48), а если без учёта, то надо самому писать.


← →
WarLord ©   (2003-05-08 10:33) [10]


> Johnmen © (08.05.03 10:29)
> Есть такая функция !
> MWT:=GetMyWorkingTime(DateTimeBegin,DateTimeEnd);
> эта функция учитывает не только праздники и дни твоих запоев,
> но и твои опоздания на работу и преждевременные уходы с
> нее !

исходник, пожалуйста, в студию! ;))))


← →
Anatoly Podgoretsky ©   (2003-05-08 10:43) [11]

function GetMyWorkingTime(DateTimeBegin,DateTimeEnd): TDateTime;
begin
Result := DbQuery(DateTimeBegin,DateTimeEnd,Range)-DbQuery(DateTimeBegin,DateTimeEnd,Happyend)-DbQuery(DateTimeBegin,DateTimeEnd,Zapoi);
end;


← →
NewN ©   (2003-05-08 10:51) [12]

Function IsZapoy: Boolean;
Bagin
Result:= True;
For i:= Now - 3 do
Result:= Result and (GetAlcogolInBloodEx(Self) > 0.5 * PROMILE);
ShowMessage("Sorry za OffTopic!");
And;


← →
WarLord ©   (2003-05-08 11:07) [13]


> Anatoly Podgoretsky ©


> NewN ©

класс!


← →
Anatoly Podgoretsky ©   (2003-05-08 12:37) [14]

Зря смеешься, здесь дан алгоритм для построения нужной функции.


← →
WarLord ©   (2003-05-08 12:39) [15]

я в этом не сомневаюсь


← →
malamba   (2003-05-08 14:37) [16]

Всем сапасибо.
Пойду напьюсь снова.


← →
Verg ©   (2003-05-08 14:57) [17]

Не,... ВСЕ НАШИ праздники никакая функция даже из многоуважаемого Васика не учтет!
Так что, предложение одно(точнее два) - использовать операцию минус (-) (сиплюсплюсам прошу не беспокоиться) или (вариант второй): напиться...(с сиплюсплюсами вместе) а потом все равно - минус... :))


← →
Anatoly Podgoretsky ©   (2003-05-08 15:11) [18]

malamba (08.05.03 14:37)
Повторять до прояснения


← →
chuvak   (2003-05-17 21:38) [19]

THours=byte;
TYear=array [1..357] of THours;

Var WorkTime,HappyTime:TYear;

В WorkTime заполни рабочее время без учетов прозников.
Например так:
for j:=0 to 50 do begin
for i:=1 to 5 do // Если пятидневка
WorkTime[(j*7)+i]:=8; // Если восьми часовой рабочий день
WorkTime[(j*7)+6]:=0;
WorkTime[(j*7)+7]:=0;
end;

В HappyTime заполни красные дни, не равные нулю, лучше всего
сделать интерфейс для заполнения этих данных
Или вот так:
HappyTime[1]:=1 //Новый год
HappyTime[31+28+8]:=1 //8-мое марта

А потом сделай функцию которой передается ДатаС и ДатаПо. А она будет пробегать по WorkTime и сумировать часы, если в HappyTime=0



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

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.013 c
6-94986
Puzzle
2003-03-26 18:43
2003.05.29
Indy idFTP - как определить, что соединение разорвано?


14-95031
AFrolov
2003-05-13 13:37
2003.05.29
Численный поиск корней функции


4-95153
Максим
2003-04-01 09:33
2003.05.29
как ограничить передвижение мыши границами формы?


1-94785
edicon
2003-05-18 20:24
2003.05.29
CreateOLEObject


3-94763
prof
2003-05-12 07:03
2003.05.29
Ошибка в запросе




   Наверх