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 27-10-2005
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
mmm podrias utilizar la funcion de la api de windows GetTickCount, te dice el numero de milisegundos o segundos (no recuerdo) que el windows lleva activo, podrias hacer algo asi:
Inicio := GetTickCount;
y al final lo vuelves a obtener para sacar la diferencia y conviertes el resultado a minutos, horas o lo que desees.

la otra es que al restar 2 variables FechaHora, te regresa la diferencia
la parte entera te dice cuantos dias fueron, y la parte decimal la conviertes normal a hora, minutos y demas, y transformas a lo que tu quieres...
Responder Con Cita
  #2  
Antiguo 27-10-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Una variación a tu función formateartiempo:

Código Delphi [-]
function formateartiempo(tpo : integer): string;
begin
  result := Format('%.2d', [tpo])
end;


Saludos...
Responder Con Cita
  #3  
Antiguo 28-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Directamente trabaja con las rutinas que tienes en la unidad DateUtils de Delphi.

Al menos en delphi 6 tienes:
Código Delphi [-]
HoursBetween(AThen, ANow:TdateTime);
SecondsBetween(AThen, ANow:TdateTime);
MinutesBetween(AThen, ANow:TdateTime);
MillisecondsBetween(AThen, ANow:TdateTime);
DaysBetween(AThen, ANow:TdateTime);
y un largo etc.

Básicamente lo pasas todo a segundos o milisegundos, algo así:
Código Delphi [-]
function HorasEntre(Antes, Ahora:TdateTime):string;
var totalSegword;
begin
  totalSeg := secondsBetween(antes,ahora);
  result := format ('%d : %d :%d', 
                [totalseg div (3600),
                totalseg div (60),
                totalseg mod (60)]);
end;
He separado el carácter 2 puntos, porque creo recordar que interfiere con la función format, ya sería cosa de mirarlo con más detalle.

Consejo: Nunca trabajes con Times, siempre con TdateTime, (por lo que comentas del cambio de fecha).

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 28-10-2005
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 22
Julià T. Va por buen camino
sólo una pequeña corrección al código para tiempos mayores de 3600 segundos
Código Delphi [-]
function HorasEntre(Antes, Ahora:TdateTime):string;
var totalSegword;
begin
  totalSeg := secondsBetween(antes,ahora);
  result := format ('%d : %d :%d', 
                [totalseg div (3600),
                (totalseg div (60)) mod 60,  //no lo he probado
                totalseg mod (60)]);
end;
Responder Con Cita
  #5  
Antiguo 28-10-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Lightbulb ;)

Bueno, podemos decir que ha quedado todo correcto con la ayuda de ustedes. Gracias a todos!!!!
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


La franja horaria es GMT +2. Ahora son las 00:40:07.


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