Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Pienso que seria mejor hacer esto,

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

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(ConverTime(40000));
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 10-04-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Pienso que seria mejor hacer esto
Ya, a eso me refería con lo del Format, pero la que ha expuesto dec viene al dedillo, ya que el tipo TDateTime no es más que un float donde la unidad es un día, así:

una hora = 1/24
un minuto = 1/(24*60)
un segundo = 1/(24*60*60)
un mes = 30

y así...
Responder Con Cita
  #3  
Antiguo 10-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ixMike Ver Mensaje
Ya, a eso me refería con lo del Format, pero la que ha expuesto dec viene al dedillo, ya que el tipo TDateTime no es más que un float donde la unidad es un día, así:

una hora = 1/24
un minuto = 1/(24*60)
un segundo = 1/(24*60*60)
un mes = 30

y así...
Si, pero le veo un pequeño detalle, que pasa si la cantidad de segundos sobrepasa las 24 horas

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 10-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.110
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bien apuntado egostar. A mí me pareció muy elegante la solución (ya he dicho que la encontré, no es "mía") pero, me temía que habría implicaciones... y todavía creo que podría haber más. Creo que habría que esperar a que quien inició el hilo comente algo a todo esto.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 10-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
Hola,

Bien apuntado egostar. A mí me pareció muy elegante la solución (ya he dicho que la encontré, no es "mía") pero, me temía que habría implicaciones... y todavía creo que podría haber más. Creo que habría que esperar a que quien inició el hilo comente algo a todo esto.
Yo se amigo Dec, y en verdad que eso soluciona cualquier problema sin tanto rollo y efectivamente es elegante, pero ya sabes como soy siempre veo el lado malo de las cosas

Como dices, habrá que esperar al aludido para que nos diga

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 10-04-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Si, pero le veo un pequeño detalle, que pasa si la cantidad de segundos sobrepasa las 24 horas

Salud OS
Bueno, en ese caso, el detalle sería mostrar los días, ¿no?

Vamos, al menos yo lo haría así en mis aplicaciones. Pero eso ya sería entrar en cuestión de gustos...
Responder Con Cita
  #7  
Antiguo 10-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
SOLUCIONADO

Utilice este procedimiento:

Código Delphi [-]
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;

Con respecto a los dias, no los necesito, puesto a que por otro lado, el ingreso de datos esta limitado a un máximo de 24hs.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #8  
Antiguo 10-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por mamu Ver Mensaje
Con respecto a los dias, no los necesito, puesto a que por otro lado, el ingreso de datos esta limitado a un máximo de 24hs.
En ese caso, la mejor opción es la que mostró nuestro amigo dec, sin tantas vueltas

Yo me complique la vida, pensando que pudiese haber cantidades mayores a 24 horas, por lo que usar TimetoStr() no iba a ser correcto y esto por el número de segundos que colocaste en tu primer intervención.

tiempototal:=125487770;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 10-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
En ese caso, la mejor opción es la que mostró nuestro amigo dec, sin tantas vueltas

Yo me complique la vida, pensando que pudiese haber cantidades mayores a 24 horas, por lo que usar TimetoStr() no iba a ser correcto y esto por el número de segundos que colocaste en tu primer intervención.

tiempototal:=125487770;

Salud OS
Sin embargo, si convierto un valor de hora 0, la función TimeToStr, me devuelve 12:XX:XX:xm, y como lo estoy usando para la duración de archivos de audio, tampoco me interesa el AM/PM. Ojo, he probado una y otra vez, y siempre me pasa lo de las 12hs.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #10  
Antiguo 10-04-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
¿Se han fijado en el código de TimeToStr?

Bye
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con la función Right Javi2 SQL 5 27-12-2007 21:59:57
Ayuda con la funcion Rtf2html en php lazar PHP 2 17-02-2007 20:24:38
ayuda con funcion mysql_num_rows estibaliz2006 PHP 1 15-11-2006 15:40:01
Ayuda con Funcion edelphi Varios 3 17-07-2006 06:24:03
Ayuda con una función McRight2k Varios 1 13-08-2003 21:47:04


La franja horaria es GMT +2. Ahora son las 11:36:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi