subtraindo hora, minuto, segundo e milésimo de segundos ?
tem como subtrair horas junto com milesimo de segundos ?
este exemplo aki fás a contagem dos milésimos..
e este fás o cáculos sem os milésimos de segundo:
quando tem colocar o formato de milésimos de segunda dando um erro que é incompatível.
alguém sabe algo ? vlw t+
este exemplo aki fás a contagem dos milésimos..
procedure TForm2.Timer1Timer(Sender: TObject); begin Edit1.Text := FormatDateTime(´HH:MM:SS:ZZZ´, TimeOld - NOW); end;
e este fás o cáculos sem os milésimos de segundo:
var TempoFinal, TempoInicial, Tempo : TTime; begin TempoInicial:=StrToTime(Edit2.Text); Tempo:=StrToTime(Edit3.Text); TempoFinal:= TempoInicial- Tempo; label9.Caption:= TimeToStr(TempoFinal); end;
quando tem colocar o formato de milésimos de segunda dando um erro que é incompatível.
alguém sabe algo ? vlw t+
Gigatel
Curtidas 0
Respostas
Gigatel
25/11/2007
ninguém sabe como subtrair não ? derrepente convertendo para inteiro ou removendo os pontos das horas, algo assim ..vlw t+
GOSTEI 0
Edilcimar
25/11/2007
eu já tive este tipo de problema e foi respondido aqui no fórum, o meu problema era com décimo de milésimo de segundo, não me recordo qual o tópico, mas se achar aqui depois respondo
GOSTEI 0
Gigatel
25/11/2007
eu já tive este tipo de problema e foi respondido aqui no fórum, o meu problema era com décimo de milésimo de segundo, não me recordo qual o tópico, mas se achar aqui depois respondo
rapás, já procurei na internet aki no fórum más não achei(pelo menos com as palavras chaves que usei..)
más vlw a atenção..
GOSTEI 0
Edilcimar
25/11/2007
acho que foi este
http://forum.devmedia.com.br/viewtopic.php?t=64098&highlight=decimo
http://forum.devmedia.com.br/viewtopic.php?t=64098&highlight=decimo
GOSTEI 0
Gigatel
25/11/2007
acho que foi este
http://forum.devmedia.com.br/viewtopic.php?t=64098&highlight=decimo
olha o código
TempoMeio := 86400 * TransformaHoraEmPontoFlutuante(MaskEdit4.Text); End; If Tempo2 > 0 then Begin VelocidadeMeio := (Sensor1 / (Tempo2 - TempoMeio)) * 3.6; MaskEdit7.Text := FloatToStrF(VelocidadeMeio, ffFixed,5,2); End;
este :
TempoMeio
TransformaHoraEmPontoFlutuante
VelocidadeMeio
são variáveis ? de que tipo?
vlw.
GOSTEI 0
Gigatel
25/11/2007
derrepente eu posso estar indo para lado errado da coisa. o que presciso mesmo é inserir dados deste tipo que esta em um listbox (pode dar outra dica tbm se este num der certo)está neste formato.
00:00:01:000
00:00:05:026
00:00:06:563
a ssim por diante
eu quero colocar isso num char para poder mostrar um gráfico de desempenho, só que dá um erro quando tento colocar a informação lá.. e estou com uma dúdida no loop para mandar todos o registros para este char.. ou seja estou ferrado..hehehehemás tenho que ir passo a passo..
vlw. aguardo noticias..hehehe
00:00:01:000
00:00:05:026
00:00:06:563
a ssim por diante
eu quero colocar isso num char para poder mostrar um gráfico de desempenho, só que dá um erro quando tento colocar a informação lá.. e estou com uma dúdida no loop para mandar todos o registros para este char.. ou seja estou ferrado..hehehehemás tenho que ir passo a passo..
vlw. aguardo noticias..hehehe
GOSTEI 0
Massuda
25/11/2007
StrToTime só sabe lidar com hora-minuto ou hora-minuto-segundo.
GOSTEI 0
Gigatel
25/11/2007
será que dá certo eu tirar o ´dois pontos´ e deixar direto ? tipo
00:00:01:000 = 000001000
00:00:05:026 = 000005026
00:00:06:563 = 000006563
assim o tchart compreende as informações se erro..será que dá certo ?
00:00:01:000 = 000001000
00:00:05:026 = 000005026
00:00:06:563 = 000006563
assim o tchart compreende as informações se erro..será que dá certo ?
GOSTEI 0
Edilcimar
25/11/2007
o resultado entre 2 tempos é real
GOSTEI 0
Edilcimar
25/11/2007
aqui está, tirei do meu programa onde a coisa funciona
Function TransformaHoraEmPontoFlutuante(Texto : string) : Real;
Function TransformarPontoFlutuanteTexto(PontoFlutuante : Real; var Hh,Mm,Ss,Ms : Word):String;
Function TransformaHoraEmPontoFlutuante(Texto : string) : Real;
Var
Hh , Mm, Ss, Ms : Word;
Fator : Integer;
begin
Fator := 36000000;
Hh := 0;
Mm := StrToInt(Copy(Texto,1,2));
Ss := StrToInt(Copy(Texto,4,2));
Ms := StrToInt(Copy(Texto,7,4));
Result := ((Hh*Fator)+(Mm*(Fator/60))+(Ss*(Fator/(60*60)))+Ms)/(24*Fator);
end;
Function TransformarPontoFlutuanteTexto(PontoFlutuante : Real; var Hh,Mm,Ss,Ms : Word):String;
Var
Resto, Fator, Fracao : Integer;
T1, T2, T3 : String;
begin
Fator:=864000000;
Fracao := Round(PontoFlutuante * Fator);
Fator := Fator div 24;
Hh := Fracao div Fator;
Resto := Fracao mod Fator;
Fator := Fator div 60;
Mm :=Resto div fator;
Resto := Resto mod fator;
Fator := Fator div 60;
Ss := Resto div fator;
Ms:= Resto mod fator;
T1 := ´0´+IntToStr(Mm);
T1 := Copy(T1,Length(T1)-1,2);
T2 := ´0´+IntToStr(Ss);
T2 := Copy(T2,Length(T2)-1,2);
T3 := ´000´+IntToStr(Ms);
T3 := Copy(T3,Length(T3)-3,4);
Result := T1+´:´+T2+´:´+T3;
end;
Function TransformaHoraEmPontoFlutuante(Texto : string) : Real;
Function TransformarPontoFlutuanteTexto(PontoFlutuante : Real; var Hh,Mm,Ss,Ms : Word):String;
Function TransformaHoraEmPontoFlutuante(Texto : string) : Real;
Var
Hh , Mm, Ss, Ms : Word;
Fator : Integer;
begin
Fator := 36000000;
Hh := 0;
Mm := StrToInt(Copy(Texto,1,2));
Ss := StrToInt(Copy(Texto,4,2));
Ms := StrToInt(Copy(Texto,7,4));
Result := ((Hh*Fator)+(Mm*(Fator/60))+(Ss*(Fator/(60*60)))+Ms)/(24*Fator);
end;
Function TransformarPontoFlutuanteTexto(PontoFlutuante : Real; var Hh,Mm,Ss,Ms : Word):String;
Var
Resto, Fator, Fracao : Integer;
T1, T2, T3 : String;
begin
Fator:=864000000;
Fracao := Round(PontoFlutuante * Fator);
Fator := Fator div 24;
Hh := Fracao div Fator;
Resto := Fracao mod Fator;
Fator := Fator div 60;
Mm :=Resto div fator;
Resto := Resto mod fator;
Fator := Fator div 60;
Ss := Resto div fator;
Ms:= Resto mod fator;
T1 := ´0´+IntToStr(Mm);
T1 := Copy(T1,Length(T1)-1,2);
T2 := ´0´+IntToStr(Ss);
T2 := Copy(T2,Length(T2)-1,2);
T3 := ´000´+IntToStr(Ms);
T3 := Copy(T3,Length(T3)-3,4);
Result := T1+´:´+T2+´:´+T3;
end;
GOSTEI 0
Gigatel
25/11/2007
aqui está, tirei do meu programa onde a coisa funciona
Function TransformaHoraEmPontoFlutuante(Texto : string) : Real;
Function TransformarPontoFlutuanteTexto(PontoFlutuante : Real; var Hh,Mm,Ss,Ms : Word):String;
Function TransformaHoraEmPontoFlutuante(Texto : string) : Real;
Var
Hh , Mm, Ss, Ms : Word;
Fator : Integer;
begin
Fator := 36000000;
Hh := 0;
Mm := StrToInt(Copy(Texto,1,2));
Ss := StrToInt(Copy(Texto,4,2));
Ms := StrToInt(Copy(Texto,7,4));
Result := ((Hh*Fator)+(Mm*(Fator/60))+(Ss*(Fator/(60*60)))+Ms)/(24*Fator);
end;
Function TransformarPontoFlutuanteTexto(PontoFlutuante : Real; var Hh,Mm,Ss,Ms : Word):String;
Var
Resto, Fator, Fracao : Integer;
T1, T2, T3 : String;
begin
Fator:=864000000;
Fracao := Round(PontoFlutuante * Fator);
Fator := Fator div 24;
Hh := Fracao div Fator;
Resto := Fracao mod Fator;
Fator := Fator div 60;
Mm :=Resto div fator;
Resto := Resto mod fator;
Fator := Fator div 60;
Ss := Resto div fator;
Ms:= Resto mod fator;
T1 := ´0´+IntToStr(Mm);
T1 := Copy(T1,Length(T1)-1,2);
T2 := ´0´+IntToStr(Ss);
T2 := Copy(T2,Length(T2)-1,2);
T3 := ´000´+IntToStr(Ms);
T3 := Copy(T3,Length(T3)-3,4);
Result := T1+´:´+T2+´:´+T3;
end;
vlw mesmo..foi de uma grande ajuda.
GOSTEI 0
Gigatel
25/11/2007
pode ser burrice minha, más não estou conseguindo funcionar esta função, tenho que ter qnts edits ? e como chamo ela no aplicativo..por encrível que parece não conseguí botar funcinar. vlw e desculpa o transtorno.
GOSTEI 0
Edilcimar
25/11/2007
Na realidade tenho diversos maskedit, de onde pego o tempo no formato
hh:mm:ss:decimomilesimosegundo, este último com 4 casas. Cada maskedit é um dos tempos de cronometragem
hh:mm:ss:decimomilesimosegundo, este último com 4 casas. Cada maskedit é um dos tempos de cronometragem
GOSTEI 0
Gigatel
25/11/2007
problema resolvido..vlw Edilcimar, vlw mesmo..t+
GOSTEI 0