📄 vacaciones.txt
字号:
{ saca los dias habilees entre dos fechas, Ej
diaslaborales(fecha 1 menor, fecha 2 mayor, dias)
el tercer campo indica los dias laborales en la semana
5 ----> de lunes hasta el viernes
6 ----> de lunes hasta medio dia del sabado }
function diaslaborales(dia1:tdate;dia2:tdate;cunto: integer): single;
var
semana:array[1..7] of integer;
ii,jj,hh:integer;
res:single;
diaex:tdate;
begin
ii:=DaysBetween(dia1,dia2);
semana[1]:=0;semana[2]:=0;semana[3]:=0;semana[4]:=0;semana[5]:=0;
semana[6]:=0;semana[7]:=0;
diaex:=dia1;
for jj:=0 to ii do
begin
dm.ZQR_dias_habiles.sql.clear;
dm.ZQR_dias_habiles.sql.add('select * from feriado where feria=:det');
dm.ZQR_dias_habiles.ParamByName('det').asdate:=diaex;
dm.ZQR_dias_habiles.execsql;
dm.ZQR_dias_habiles.close;
if dm.ZQR_dias_habiles.recordcount>0 then
begin
hh:=DayOfTheWeek(diaex);
case hh of
1: semana[1]:=semana[1];
2: semana[2]:=semana[2];
3: semana[3]:=semana[3];
4: semana[4]:=semana[4];
5: semana[5]:=semana[5];
6: semana[6]:=semana[6];
7: semana[7]:=semana[7];
end;
end
else
begin
hh:=DayOfTheWeek(diaex);
case hh of
1: semana[1]:=semana[1]+1;
2: semana[2]:=semana[2]+1;
3: semana[3]:=semana[3]+1;
4: semana[4]:=semana[4]+1;
5: semana[5]:=semana[5]+1;
6: semana[6]:=semana[6]+1;
7: semana[7]:=semana[7]+1;
end;
end;
diaex:=IncDay(diaex);
end;
if cunto=5 then res:=semana[1]+semana[2]+semana[3]+semana[4]+semana[5];
if cunto=6 then res:=semana[1]+semana[2]+semana[3]+semana[4]+semana[5]+(semana[6]/2);
Result := res;
//FloatToStr(diaslaborales(strtodate(REdit1.Text),strtodate(REdit2.Text),strtoint(RzEdit1.text)));
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -