1 Cálculo dias úteis sem fins de semana Sex Jun 07, 2013 3:48 pm
Moedas : 12
Mensagens : 8
Humor : ^^
Reputação : 0
Mensagens : 8
Humor : ^^
Reputação : 0
felipe.alima
Novato
Pessoal,
Seguinte, tem uma parte do código do sistema que é feito aqui na empresa que verifica o dia de vencimento de um pagamento e o dia de carência, só que quando se coloca a opção de X dias úteis após o vencimento, o sistema entende que sábado e domingo são dias úteis.
Este código é de terceiros, já peguei a bagaça assim e estou confuso.
Abaixo segue o código:
Seguinte, tem uma parte do código do sistema que é feito aqui na empresa que verifica o dia de vencimento de um pagamento e o dia de carência, só que quando se coloca a opção de X dias úteis após o vencimento, o sistema entende que sábado e domingo são dias úteis.
Este código é de terceiros, já peguei a bagaça assim e estou confuso.
Abaixo segue o código:
- Código:
function TFrmMovCalcularRecibo.GetDataCarencia(Dia: integer; Tipo,
DataVencimento: string): string;
var DataCarencia: string;
begin
if Tipo = '0' then //Dias após o vencimento
begin
DataCarencia := DateToStr(StrToDate(DataVencimento) + Dia);
end
else if Tipo = '1' then //Dia do mês
begin
if (Dia = 0) or (IntToStr(Dia) = '') then
begin
DataCarencia := DateToStr(StrToDate(DataVencimento) + Dia);
end
else
begin
DataCarencia := IntToStr(Dia) + '/' + IntToStr(cbMes.ItemIndex + 1) + '/' + IntToStr(udAno.Position);
if StrToDate(DataCarencia) < StrToDate(DataVencimento) then
DataCarencia := DateToStr(IncMonth(StrToDate(DataCarencia), 1));
end;
end
else if Tipo = '2' then //Dias úteis do mês
begin
if (Dia = 0) or (IntToStr(Dia) = '') then
begin
DataCarencia := DateToStr(StrToDate(DataVencimento) + Dia);
end
else
begin
DataCarencia := InserirZeros(Dia, 2) + '/' + IntToStr(cbMes.ItemIndex + 1) + '/' + IntToStr(udAno.Position);
DataCarencia := GetDiaUtilCarenciaContrato(DataCarencia);
if StrToDate(DataCarencia) < StrToDate(DataVencimento) then
begin
DataCarencia := DateToStr(IncMonth(StrToDate(DataCarencia), 1));
DataCarencia := GetDiaUtilCarenciaContrato(DataCarencia);
end;
end;
end
else if Tipo = '3' then //Dias úteis após o Vencimento
begin
DataCarencia := DateToStr(StrToDate(DataVencimento) + Dia);
DataCarencia := GetDiaUtilCarenciaContrato(DataCarencia);
end;
result := DataCarencia;
end;
function TFrmMovCalcularRecibo.GetDiaUtilCarenciaContrato(Data: string): string;
var DataAtual: TDate;
begin
DataAtual := StrToDate(Data);
case DayOfTheWeek(StrToDate(Data)) of
6: DataAtual := DataAtual + 2; //Sábado
7: DataAtual := DataAtual + 1; //Domingo
end;
result := DateToStr(GetDiaUtil(DataAtual));
end;