Fórum Multiplicar tempo por dinheiro #364359
27/09/2008
0
R$25,50*2:30h
esse valor deveria dar como resultado=R$63,75
mas como estou fazendo dá um valor que naum tem nada a ver. :(
Abelha
Curtir tópico
+ 0Posts
27/09/2008
Abelha
procedure TForm1.Button1Click(Sender: TObject); var Tempo:Ttime; dinheiro, resultado:double; begin Tempo:=StrTotime(´2:50´); dinheiro:=StrToFloat(´25,50´); resultado:=tempo*dinheiro; showmessage(´R$ ´+Formatfloat(´#0,00´,resultado)); end;
Onde está o(s) erro(s)?
Gostei + 0
27/09/2008
Campsoft
digamos que seu minuto vale 0,425
2h 30m = 150 minutos
multiplicando o valor do minuto por minutos.. teriamos:
0,425 * 150 = 63,75
espero ter ajudado.
Gostei + 0
28/09/2008
Abelha
valeu.
Gostei + 0
30/09/2008
Pestana_
bom dia Abelha!
parece que você fez de uma forma diferente, como é que você fez? qual foi a formula?
Abraços!
Gostei + 0
30/09/2008
Abelha
procedure TForm1.Button1Click(Sender: TObject); var Tempo:Ttime; dinheiro, resultado:double; begin Tempo:=StrTotime(´2:50´); dinheiro:=StrToFloat(´25,50´); resultado:=tempo*dinheiro*24; //Aqui, multiplica por 24 showmessage(´R$ ´+Formatfloat(´#,0.00´,resultado)); end;
qualquer dúvida, fala aê....
Gostei + 0
30/09/2008
Pestana_
procedure TForm1.Button1Click(Sender: TObject); var Tempo:Ttime; dinheiro, resultado:double; begin Tempo:=StrTotime(´2:50´); dinheiro:=StrToFloat(´25,50´); resultado:=tempo*dinheiro*24; //Aqui, multiplica por 24 showmessage(´R$ ´+Formatfloat(´#,0.00´,resultado)); end;
muito bem Abelha! desta forma também resolve.
agora se você for trabalhar com acumulo de horas (por ex.: 244:00) então ocorrerá uma exceção quando você for converter para Time.
Abraços!
Gostei + 0
30/09/2008
Pestana_
como é que você descrobre o total de minutos nesta linha abaixo:
estou tentando intender, mas não estou conseguindo fazer!
Abraços!
Gostei + 0
30/09/2008
Campsoft
// hora (formato HH:MM) para minutos Function Hora2Min(Hora: String): Integer; begin Result := (StrToInt(Copy(Hora,1,2))*60) + StrToInt(Copy(Hora,4,2)); end;
abraços !
Gostei + 0
30/09/2008
Campsoft
É só dar uma alterada na função.
Gostei + 0
30/09/2008
Pestana_
a sua dica funciona perfeito, mas antes de você postar eu havia conseguido de uma outra forma. É como você já havia dito que existe várias formas de se fazer e consegui fazer desta forma abaixo:
procedure TForm1.Button1Click(Sender: TObject); var valorPago, totalHoras, totalMinutos : double; begin valorPago := 10.50/60; // valor pago por minuto. totalHoras := 244.30; // total de horas trabalhado. totalMinutos := (Trunc(totalHoras)*60) + Frac(totalHoras); // total de minutos trabalhado. ShowMessage(FloatToStr(RoundTo(valorPago*totalMinutos,-2))); end;
Gostei + 0
30/09/2008
Pestana_
Abraços!
Gostei + 0
30/09/2008
Pestana_
procedure TForm1.Button1Click(Sender: TObject); var valorPago, totalHoras, totalMinutos : double; begin valorPago := 10.50/60; // valor pago por minuto. // total de horas trabalhado. totalHoras := StrToCurr(StringReplace(Trim(mskQtdeHora.Text), ´:´, ´.´, [])); // total de minutos trabalhado. totalMinutos := (Trunc(totalHoras)*60) + Frac(totalHoras); ShowMessage(FloatToStr(RoundTo(valorPago*totalMinutos,-2))); end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)