como posso fazer este calculo no Delphi 000:00:00-00:00:00
Bom dia!
Preciso fazer este calculo entre horas.
000:00:00-00:00:00
Esta dando erro dizendo que o formato não esta correto.
O condigo que estou usando é este:
var
x, y, v:real;
begin
x:= StrToFloat(lbHD.caption);
y:= StrToFloat(lbHP.Caption);
v:= x-y;
lbLabel13.Caption:= FloatToStr(v);
end;
no caso lbHD seria a informação em horas que vem assim 000:00:00 e no caso lbHP seria a informação em horas que vem assim 00:00:00.
Preciso fazer este calculo entre horas.
000:00:00-00:00:00
Esta dando erro dizendo que o formato não esta correto.
O condigo que estou usando é este:
var
x, y, v:real;
begin
x:= StrToFloat(lbHD.caption);
y:= StrToFloat(lbHP.Caption);
v:= x-y;
lbLabel13.Caption:= FloatToStr(v);
end;
no caso lbHD seria a informação em horas que vem assim 000:00:00 e no caso lbHP seria a informação em horas que vem assim 00:00:00.
Rodrigo Carlos
Curtidas 0
Respostas
Raylan Zibel
11/08/2016
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
lbl1.Caption := DateTimeToStr(Now);
lbl2.Caption := DateTimeToStr(Now/0.5);
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
lbl3.Caption := DateTimeToStr(StrToDateTime(lbl1.Caption) - StrToDateTime(lbl2.Caption))
end;
end.
GOSTEI 0
Rodrigo Carlos
11/08/2016
Não foi.
Tipo tenho estes dois valores que mudam.
lbHD.Caption = 223:43:00
lbHP.Caption = 60:52:00
lbLabel13.Caption = 223:43:00 - 60:52:00
Eu preciso fazer a subtração destes valores.E demostrar o resultado deles. no entanto por passar de 24h não esta aceitando
Obrigado pela atenção.
Tipo tenho estes dois valores que mudam.
lbHD.Caption = 223:43:00
lbHP.Caption = 60:52:00
lbLabel13.Caption = 223:43:00 - 60:52:00
Eu preciso fazer a subtração destes valores.E demostrar o resultado deles. no entanto por passar de 24h não esta aceitando
Obrigado pela atenção.
GOSTEI 0
Raylan Zibel
11/08/2016
Aí tem que fazer a conta pra transformar as horas de cada uma em blocos de 60 minutos.
GOSTEI 0
Rodrigo Carlos
11/08/2016
tá vc sabe fazer, ou teria algum link que tenha é que funcione?
GOSTEI 0
Rodrigo Carlos
11/08/2016
Galera, da uma força, por favor.
Só falta este calculo concluir a primeira parte.
Só falta este calculo concluir a primeira parte.
GOSTEI 0
Natanael Ferreira
11/08/2016
Veja se este exemplo ajuda:
var
Hora1, Hora2: String;
Minutos1, Minutos2: Integer;
begin
Hora1 := '223:43:00';
Hora2 := '60:52:00';
Minutos1 := StrToInt(Copy(Hora1, 1, Pos(':', Hora1) - 1)) +
StrToInt(Copy(Hora1, Pos(':', Hora1) + 1, 2));
Minutos2 := StrToInt(Copy(Hora2, 1, Pos(':', Hora2) - 1)) +
StrToInt(Copy(Hora2, Pos(':', Hora2) + 1, 2));
ShowMessage(IntToStr(Minutos1 - Minutos2));
end;GOSTEI 0
Raimundo Pereira
11/08/2016
Brother, desde a primeira postagem que você postou, eu estou buscando uma alternativa.
Paciência, alguém vai dá uma luz.
Paciência, alguém vai dá uma luz.
GOSTEI 0
Raimundo Pereira
11/08/2016
Veja se ajuda:
{$R *.dfm}
function CopyNext(S: String; Index, Count : Integer) : String;
begin
Result := (S);
Result := Copy(Result, Index, Count);
Result := (Result);
end;
function Subistituir(TextoCompleto,LocalizarTexto,NovoTexto: String ) : String;
begin
Result:=StringReplace(TextoCompleto,LocalizarTexto, NovoTexto, [rfReplaceAll, rfIgnoreCase]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Hi,
Hf:string;
VhorasI,
VhorasF,
Result:integer;
begin
Hi:=CopyNext(HoraInicial.Text,1,3);
Hf:=CopyNext(HoraFinal.Text,1,3);
Hi:= Subistituir(Hi,':','');
Hf:= Subistituir(Hf,':','');
VhorasI:=StrToInt(hi);
VhorasF:=StrToInt(hf);
Result:=VhorasF-VhorasI;
Hora_Resultado.Text:=IntToStr(Result);
ShowMessage('Horas Inicial ['+Hi+'] - Horas Inicial ['+hf+'] ='+IntToStr(Result) );
end;
Se a rotina acima não ajudar veja o link abaixo:
Link aqui
{$R *.dfm}
function CopyNext(S: String; Index, Count : Integer) : String;
begin
Result := (S);
Result := Copy(Result, Index, Count);
Result := (Result);
end;
function Subistituir(TextoCompleto,LocalizarTexto,NovoTexto: String ) : String;
begin
Result:=StringReplace(TextoCompleto,LocalizarTexto, NovoTexto, [rfReplaceAll, rfIgnoreCase]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Hi,
Hf:string;
VhorasI,
VhorasF,
Result:integer;
begin
Hi:=CopyNext(HoraInicial.Text,1,3);
Hf:=CopyNext(HoraFinal.Text,1,3);
Hi:= Subistituir(Hi,':','');
Hf:= Subistituir(Hf,':','');
VhorasI:=StrToInt(hi);
VhorasF:=StrToInt(hf);
Result:=VhorasF-VhorasI;
Hora_Resultado.Text:=IntToStr(Result);
ShowMessage('Horas Inicial ['+Hi+'] - Horas Inicial ['+hf+'] ='+IntToStr(Result) );
end;
Se a rotina acima não ajudar veja o link abaixo:
Link aqui
GOSTEI 0