Como fazer este calculo!!!!!
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
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
Curtidas 0
Respostas
Kandrus
10/05/2004
Onde vc esta gravando os dados em DB?
De maiores informações para que possamos te ajudar
De maiores informações para que possamos te ajudar
GOSTEI 0
Rodolpho123
10/05/2004
Olá i_prada,
Tente isto:
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;
GOSTEI 0
Eduardo_lcouto
10/05/2004
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.
GOSTEI 0
Aroldo Zanela
10/05/2004
Colega,
1. Crie uma unit para implementar a seguinte classe:
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:
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;
GOSTEI 0
I_prada
10/05/2004
Obrigado amigos...
Vou tentar todos opções que vcs me passaram ... valeu mesmo !!!
[]´s
Igor
Vou tentar todos opções que vcs me passaram ... valeu mesmo !!!
[]´s
Igor
GOSTEI 0