Bu kod ile belirtilen bir tarihe isteni diği kadar iş günü ekliyebiliyorsunuz.
Kod: Tümünü seç
const
resmitatilsayisi=5;
resmitatiller:array[1..resmitatilsayisi]of string[5]=
('01.01','23.04','19.05','30.08','29.10');
function tatiledenkgeliyormu(tarih:tdatetime):Boolean;
var
i:byte;
begin
result:=(DayOfWeek(tarih)=1) or (DayOfWeek(tarih)=7);
if not result then
begin
//resmi tatil günlerini kontrol et
for i:=1 to resmitatilsayisi do
result:=result or (tarih=strtodate(resmitatiller[i]+formatdatetime('.YYYY',date)));
end;
end;
function isgunuekle(Mdate: Tdatetime; day: integer): tdatetime;
var
i:integer;
begin
i:=0;
while i<day do
begin
mdate:=mdate+1;//bir gün ekleniyor
if tatiledenkgeliyormu(mdate) then continue;
inc(i);
end;
result:=mdate;
end;
Kod: Tümünü seç
dtp2.date:=isgunuekle(dtp1.date,8);
//datetimepicker2 nin tarihini datetimepicker1 den sonraki 8.işgününe ayarla
Kolay Gelsin.
dayofweek fonksiyonunun hftanın günlerini pazar=1 olacak şekilde döndürüyormuş. ona göre kontrolu düzelltim.