Bem vindo ao LifeGames Demo
Cadastre-se agora para ter acesso a todos os nossos recursos. Uma vez cadastrado e logado, você será capaz de criar tópicos, postar respostas a tópicos já existentes, a reputação de seus companheiros, começar seu próprio mensageiro privado, atualizações de status post, gerir o seu perfil e muito mais. Esta mensagem será removida assim que tiver logado.
Entrar Cadastre-se


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Cálculo dias úteis sem fins de semana em Sex Jun 07, 2013 3:48 pm

Moedas Moedas : 12
Mensagens Mensagens : 8
Humor Humor : ^^
Reputação Reputação : 0
Quebra de regras:
0 / 1000 / 100

felipe.alima

Novato

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:

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;

Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum