Fórum Calculo total de horas #333098

14/11/2006

0

Olá!
Preciso somar a quantidade de Horas trabalhdas em um determinado periodo de um determinado funcionario.
Exemplo:

05/05 --> 08:00:00
06/05 --> 08:45:00
07/05 --> 08:30:00
===============
Total --> 25:15:00

Alguem pode me ajudar com fazer isso?

Se puderem me ajudar, ficaria muito grato!

Obrigado


Ronithd

Ronithd

Responder

Posts

14/11/2006

Robotpost

Amigo,

Me mande um e-mail que te envio um exemplo:

fernando.gs@uol.com.br

Abraços!


Responder

Gostei + 0

15/11/2006

Paullsoftware

teste ai que vai funcionar normal...

//Usei uma tabela com o campo Hora somente para testar
//pode-se usar um ClientDataSet em memória para testar
procedure TForm1.Button2Click(Sender: TObject);
var
  ToHor,t2: TTime;

  Ano, Mes, Dia, Hora, Min, Seg, MSeg: Word;
  AcumHor,AcumMin,AcumSeg : Integer;
begin
  AcumHor := 00;
  AcumMin := 00;
  tab.Refresh;
  tab.First;

  while not tab.Eof do
    begin
      ToHor  := strtotime(tabhora.Value);
      DecodeTime(ToHor, Hora, Min, Seg, MSeg);

      if (Min < 60) and (Min <> 0) then begin
         if AcumMin < 60 then begin
            AcumMin := AcumMin + Min; end;  //acumula minutos

        if AcumMin >= 60 then begin
           AcumHor := AcumHor + 1; // soma uma hora se minuto >= 60
           AcumMin := AcumMin - 60; // diminui horas do minuto  >= 60
       end;
       end;
           AcumHor := AcumHor + Hora;   // acumula horas
           tab.Next;
   end;

    FormatFloat(´00´,AcumMin);//formata casa decimais em minuto
    FormatFloat(´00´,AcumHor);//formata casa decimais em hora


    Label6.Caption := ´Total de Horas : ´ + FormatFloat(´00´,AcumHor) + ´:´+ FormatFloat(´00´,AcumMin);
    MaskEdit4.Text := FormatFloat(´00´,AcumHor) + ´:´+ FormatFloat(´00´,AcumMin);
end;


espero ter ajudado :wink:


Responder

Gostei + 0

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

Aceitar