PDA

Ver la Versión Completa : Ahora como convertir Minutos a Segundod o Milisegundos o Microsegundos???


erikmx
01-07-2008, 07:02:19
Hola, casi no posteo pero trato de leer lo mas frecuentemente posible el foro :), estoy tratando de convertir Minutos a Segundos, Milisegundos, Microsegunso y Nanosegundos en teoria parece facil pero lo e estado intentando y los valores resultantes no me coinciden por ejemplo si se que un minuto equivale a 60 segundos cuando lo paso a delphi el valor me sale erroneo... ok ok se que debe de hacerse una regla de tres pero aqui en delphi nomas ya me hice bolas es mas trate de adptar el codigo que aqui mismo encontre

function ConverTime(Seconds: Integer): string;
var Horas,Minutos,Segundos:integer;
begin
Horas := Seconds div 3600;
Minutos := (Seconds - (Horas*3600)) div 60;
Segundos := (Seconds - (Horas*3600)) mod 60;
Result:= Format('%.*d',[2,Horas])+':'+Format('%.*d',[2,Minutos])+':'+Format('%.*d',[2,Segundos]);
end;


Pero nomas no y esto es basicamente lo que quiero hacer pero pues no hayo la forma :( de hacer lo siguiente

1 Minuto = 60 Segundos
1 Segundo = 1000 Milisegundos
1 Milisegundo = 1000 Microsegundos
1 Microsegundo = 1000 Nanosegundos

Ejemplo 1 Minuto es igual a:

Segundos = 60
Milisegundos = 60000
Microsegundos = 60000000
Nanosegundos = 60000000000

Claro que no quiero manejar numero enteros sino fracciones de tiempo por ejemplo 1.28 Minutos.

Espero puedan darme una idea porque yo ya me hice bolas, un saludo

erikmx
01-07-2008, 07:25:23
Era el cansancio que traigo acumulado que las neuronas no me dejaban pensar de manera razonable, ya descubri mi fatal error, yo estaba dividiendo entre el valor de conversion, cuando debo de multiplicar :D

No me quedo muy elegante pero por ahora me es funcional para lo que necesito si alguie lo quiere pulir un poco pues bienvenida la ayuda por mientras aqui mi solucion de 3 centavos :D


var
Form1: TForm1;
MinutosX, SegundosX, MilisegundosX, MicrosegundosX, NanosegundosX: Extended;

implementation

{$R *.dfm}

Procedure TForm1.Minutos2Segundos;
begin
MinutosX:= StrToFloat(Minutos.Text)*60;
Segundos.Text:= FloatToStr(MinutosX);
end;

Procedure TForm1.Segundos2Milisegundos;
begin
SegundosX:= StrToFloat(Segundos.Text)*1000;
Milisegundos.Text:= FloatToStr(SegundosX);
end;

Procedure TForm1.Milisegundos2Microsegundos;
begin
MilisegundosX:= StrToFloat(Milisegundos.Text)*1000;
Microsegundos.Text:= FloatToStr(MilisegundosX);
end;

Procedure TForm1.Microsegundos2Nanosegundos;
begin
MicrosegundosX:= StrToFloat(Microsegundos.Text)*1000;
Nanosegundos.Text:= FloatToStr(MicrosegundosX);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Minutos2Segundos;
Segundos2Milisegundos;
Milisegundos2Microsegundos;
Microsegundos2Nanosegundos;
end;

end.