СообЧа > База Знаний > Программирование > Delphi

Вопрос

Можно ли вычислить в компоненте MonthCalendar рабочие дни, т.е. кол-во дней в месяце кроме суббот и воскресений? Существуют ли компоненты, которые могут делать такие вычисления?

Ответ

Вот навскидку написал, в принципе если тебе не надо посчитать за секунду 100000 различных месяцев, то я думаю подойдет:

function QuatityOfWorkDays(Month, Year: Integer): Integer;
var DT: TDateTime;
I, SD, ED: Integer;
begin
SD := Round(EncodeDate(Year, Month, 1)); // Первый день месяца
ED := Round(IncMonth(SD, 1)) — 1; // Последний день месяца
Result := 0;
for I := SD to ED do // Перебираем все дни
if DayOfWeek(I) in [2..6] then Inc(Result);
// Увеличиваем счетчик, если не 1 — воскресенье и 7 — суббота
end;


T'Mon



Copyright © 2000-2004 Сообщество Чайников
Контактная информация