somar dias uteis a uma data
estou desenvolvendo um projeto onde necessito somar à uma data definida (dbtimepicker1) uma quantidade de dias uteis (dbEdit1). onde o dbtimepiker2 receberá o resultado
por exemplo: 13/05/2004 + 4
o resultado será 18/05/2005 (não foi somado o domingo)
agradeço qualquer ajuda
por exemplo: 13/05/2004 + 4
o resultado será 18/05/2005 (não foi somado o domingo)
agradeço qualquer ajuda
Dacunha
Curtidas 0
Respostas
Euclides
13/05/2004
Olá Dacunha,
você poderá fazer uma rotina que some de um em um os dias mas para somar faça algumas consistências do tipo :
DAYOFWEEK( DATA ) = 1 // DOMINGO
DAYOFWEEK( DATA ) = 7 // SABADO
Aqui você irá identificar quando a data cai de sábado ou domingo para somar mais dias na data ......
Espero ter ajudado
Qualquer coisa posta aqui de novo
Abraços
você poderá fazer uma rotina que some de um em um os dias mas para somar faça algumas consistências do tipo :
DAYOFWEEK( DATA ) = 1 // DOMINGO
DAYOFWEEK( DATA ) = 7 // SABADO
Aqui você irá identificar quando a data cai de sábado ou domingo para somar mais dias na data ......
Espero ter ajudado
Qualquer coisa posta aqui de novo
Abraços
GOSTEI 0
Marco Salles
13/05/2004
tente a rotina abaixo
Para fazer um teste coloque um botton e dois edits no Form, e chame a funçao assim:
function Verificadiadata(Data:Tdate;Dias:integer):Tdate; var Datainicial:Tdate; DataFinal:Tdate; begin datainicial:=data+1; datafinal:=data+dias; while (Datainicial)<=Datafinal do begin if trunc(datainicial) mod 7 = 1 then begin datafinal:=Datafinal+1; end; datainicial:=datainicial+1; end; if trunc(datafinal) mod 7 = 1 then result:=datafinal+1 else result:=datafinal; end;
Para fazer um teste coloque um botton e dois edits no Form, e chame a funçao assim:
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(DateToStr(Verificadiadata(StrToDate(Edit1.Text),StrToint(Edit2.Text)))); end;
GOSTEI 0