Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido]Problema no Cálculo


Eder

Pergunta

Ola..

estou montando um codigo até muito simples porem não fecha o calculo.

eu tenho o valor da hora pago e ai tenho um dbedit que é digitado a quantidade horas(campo Timer paradox).

a ideia é....pegar o valor da hora e multiplicar pelo tempo de trabalho(00:00:00)

eu fiz assim porem não ta funcionando:

//Função converter Hora para Segundos

function Hora_Seg( Horas:string ):LongInt;
Var Hor,Min,Seg:LongInt;
begin
 Horas[Pos(':',Horas)]:= '[';
 Horas[Pos(':',Horas)]:= ']';
 Hor := StrToInt(Copy(Horas,1,Pos('[',Horas)-1));
 Min := StrToInt(Copy(Horas,Pos('[',Horas)+1,(Pos(']',Horas)-Pos('[',Horas)-1)));
 if Pos(':',Horas) > 0 then
    Seg := StrToInt(Copy(Horas,Pos(']',Horas)+1,(Pos(':',Horas)-Pos(']',Horas)-1)))
 else
    Seg := StrToInt(Copy(Horas,Pos(']',Horas)+1,2));
 Result := Seg + (Hor*3600) + (Min*60);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
Hora1 : Integer;
sub, sub1, tot:real;
begin
   Hora1 := hora1 + Hora_Seg( TimeToStr( Table1.FieldByName('HORA').AsdateTIME )); //total de horas convertendo para segundos
   showmessage(Floattostr(HORA1)+' Total de segundos'); //mostra o testezinho.

   sub:=strtoFloat(table1Vhora.asstring); //pega o valor da hora
   showmessage(FloatTostr(sub)+' Valor da Hora'); //mostra

   sub1:=((sub  / 60)/60); // aqui calculo o valor por segundo
   showmessage(FloatTostr(sub1)+' Valor p/ segundo'); mostra

   Tot := hora1 * sub1; //aqui multiplicada a quantidade de segundos pelo valor do segundo
   showmessage(Floattostr(tot)+' Valor da Hora Calculado'); //mostra o valor a ser pago.
end;

é apenas um testezinho que estou brincando para montar um calculo no programa...mas não funca la no primeiro showmessage

eu coloquei 01:00:00 (uma hora) e a mensagem diz que uma hora é 1311636 segundos. mas é 3600 segundos

Por fafor alguém poderia me dizer o que esta de errado? :blush:

Grato

Editado por Eder
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

OPA...tinha um errinho no codigo:

Hora1 := hora1 + Hora_Seg( TimeToStr( Table1.FieldByName('HORA').AsdateTIME )); //total de horas convertendo para segundos
retirei o HORA1 + e depois funcionou certinho :blush: ficando assim:
Hora1 := Hora_Seg( TimeToStr( Table1.FieldByName('HORA').AsdateTIME )); //total de horas convertendo para segundos

falou

Editado por Eder
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...