Fórum Como fazer este calculo!!!!! #231061

10/05/2004

0

Pessoal

Estou fazendo um sistema que recebe a quantidade de horas que o usuario usou o
computador. Exemplo: HoraTotal = 05:00:00

Em outro campo eu tenho o preço da hora Exemplo: ValorHora = R$ 2,00

Gostaria de multiplicar estes campos para poder gerar o valor total ... mas so da
erro de conversão de dados... Alguem poderia me ajudar a converter estes dados para
que eu possa fazer o calculo sem problemas !?

Abraços

Igor


I_prada

I_prada

Responder

Posts

10/05/2004

Kandrus

Onde vc esta gravando os dados em DB?

De maiores informações para que possamos te ajudar


Responder

Gostei + 0

10/05/2004

Rodolpho123

Olá i_prada,

Tente isto:
procedure TForm1.Button1Click(Sender: TObject);
var
hora: TTime;
format: string;
resultado,moeda: Double;
begin
hora:= StrToTime(MaskEdit1.Text); // Aqui converte a sua hora para o formato horário
Format:= FormatDateTime(´hh,nn´,hora);//Aqui formata para valor decimal a sua hora
resultado:= StrToFloat(format) * 2.50; // Aqui faz o cálculo
ShowMessage(FloatToStr(resultado)); // Resultado
end;



Responder

Gostei + 0

10/05/2004

Eduardo_lcouto

procedure TForm1.Button1Click(Sender: TObject); var hora,minuto,sec,mil: Word; total, minutoparahoras: real; begin DecodeTime(DateTimePicker1.Time,hora,minuto,sec,mil); // separa a Hora o minuto o segundo e o milisegundo. minutoparahoras:=minuto / 60; //caso o horário de uso foi 5:30:00, converte minutos em horas. total:=(hora+minuto)*2.50; label1.Caption:=FloatToStr(total); end; end.


Acho que isso pode te ajudar.


Responder

Gostei + 0

10/05/2004

Aroldo Zanela

Colega,

1. Crie uma unit para implementar a seguinte classe:

unit Unit2;

interface

uses Controls, SysUtils;

Type
TCalcularPreco = Class(TObject)
  private
    FTempo: TTime;
      FValorTotal: Currency;
      FValorHora: Currency;
    public
property TempoDecorrido: TTime read FTempo write FTempo;
      property ValorTotal: Currency read FValorTotal;
      property ValorHora: Currency read FValorHora write FValorHora;
      procedure Execute;
  end;
implementation

{ TCalcularPreco }

procedure TCalcularPreco.Execute;
var TempoTotalMinutos: Integer;
Horas, Minutos, Segundos, mSegundos: Word;
begin
DecodeTime(FTempo, Horas, Minutos, Segundos, mSegundos);
  TempoTotalMinutos:= (Horas * 60) + Minutos + Integer(Segundos>30);
  FValorTotal := TempoTotalMinutos * (FValorHora / 60 );
end;

end.


Note que a função calcula o valor para hora e minutos, sendo que, se passar de trinta segundos, será calculado o minuto completo (type casting).

2. Adicione a mesma na lista de uses de seu formulário, e poderá utilizar conforme o exemplo abaixo:

procedure TForm1.Button1Click(Sender: TObject);
begin
with TCalcularPreco.Create do
  begin
    TempoDecorrido:= StrToTime(MaskEdit1.Text); // 05:00:00
  ValorHora:= rxCalcEdit1.Value; // 2.00
  Execute;
  ShowMessage(CurrToStr(ValorTotal));
  Free;
  end;
end;



Responder

Gostei + 0

11/05/2004

I_prada

Obrigado amigos...

Vou tentar todos opções que vcs me passaram ... valeu mesmo !!!

[]´s

Igor


Responder

Gostei + 0

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

Aceitar