Fórum somar dias uteis a uma data #231890

13/05/2004

0

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


Dacunha

Dacunha

Responder

Posts

13/05/2004

Euclides

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


Responder

Gostei + 0

13/05/2004

Marco Salles

tente a rotina abaixo
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;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar