Fórum somas tempo entre horas e obter resultado em dinheiro #485637

16/07/2014

0

Olá gostaria de saber como posso fazer pra somar horas tipo hrs 13:00 + 14:30 = 1:30 valor por hora R$ 2,00 = 3,00
agrdeço a dica.
Rogério Peron

Rogério Peron

Responder

Post mais votado

16/07/2014

Encontrei o código abaixo, mas não trabalho com delphi então não sei te ajudar muito.

var
Horachegada,horasaida : TDateTime;
resuldif:string;
Result:integer;
valor_sv, valor_final:real;
begin
  if key=#13 then
    //Retorna a diferença entre duas horas}
      begin
        horachegada := StrTotime(dbedit2.text);
        horasaida := StrToTime(dbedit3.Text);
      If (dbedit2.text < dbedit3.Text) then
        begin
          Resuldif := TimeToStr((StrTotime('23:59:59')-horachegada)+horasaida);
          resuldif := TimeToStr(horachegada-horasaida);
        //Resultado da diferença entre datas
         dbedit7.text:=(resuldif);
        //Conversão de horas para minutos
        Result := (StrToInt(Copy(resuldif,1,2))*60) + StrToInt(Copy(resuldif,4,2));
        //Calculo de Horas * valor da hora / por 60
        valor_sv:=(result)*(strtofloat(dbedit5.text)/60);
        //Arredonda o resultado para 3 casas decimais
        valor_final := round(valor_sv * 1000) / 1000;
        //Resultado
        label14.caption:=floattostr(valor_final);
        end;
     end;
  end;

Fabiano Carvalho

Fabiano Carvalho
Responder

Gostei + 1

Mais Posts

16/07/2014

Ronaldo Lanhellas

Acho que você procurou a solução mas complexa, sem codificar nada posso lhe dar a seguinte dica:

1 - Converta a data/hora inicial e final para minutos (Ex fictício: 01/01/2014 10:50:20 = 2.000.000 minutos e 02/01/2014 08:00:20 = 2.000.500 minutos)
2 - Subtraia os minutos iniciais e finais e você terá o intervalo de minutos trabalhados neste período. Ex: 2.000.000 - 2.000.500 = 500 minutos
3 - Converta o valor/hora para valor/minutos. Ex: R$ 2/ 60 m = 0,03 centavos
4 - Calcule agora o final = 500 minutos * 0,03 = R$ 15 reais.

Certo ?
Responder

Gostei + 1

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

Aceitar