Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-07-2022
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 172
Poder: 19
Efren2006 Va por buen camino
Reloj de Tiempo entre dos Fechas TDateTime

Buenas Tardes

Existirá alguna Función de DELPHI que me Retorne tipo Reloj el Tiempo entre 2 fechas TDatetime, me explico;

Si los Valores Fuera
Código:
FechaA:='29/07/2022 13:00:00'
y
Código:
FechaB:='30/07/2022 16:10:50'
Retornara el Tiempo total Transcurrido, algo así: 0 Años 0 Meses 1 Dias 3 Horas 10 Minutos 50 Segundos

Saludos
Responder Con Cita
  #2  
Antiguo 01-08-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hola.
No comentas qué versión de dlephi utilizas.
Revisa la unit DateUtils, donde ncontrarás muchas funciones de tratamiento de fechas/horas.

https://docwiki.embarcadero.com/Libr...stem.DateUtils

Directamente no hay ninguna (creo recordar) que haga lo que necesitas, pero hay varias estratégias para conseguirlo.
Por ejemplo, restar las fechas para obtener la diferencia en segundos y a partir de ahí sacer los segundos, minutos, horas,...

Otra opción es revisar las funciones ?????Between del link anterior y ver si con ellas puedes obtenerla.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 01-08-2022
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Dado que TDateTime internamente es un número puedes restar uno de otro y luego mostrarlo formateado...

Algo así:

Código Delphi [-]
var
  Desde : TDateTime;
  Haste : TDateTime;
  TiempoTranscurrido : string;
begin
  Desde := EncodeDateTime(2021, 10, 12, 10, 20, 30, 0);
  Hasta := EncodeDateTime(2022, 11, 15, 11, 22, 33, 0);

  TiempoTranscurrido := FormatDateTime('yy años mm meses dd dias hh horas nn minutos ss segundos', (Hasta - Desde));
end;
Responder Con Cita
  #4  
Antiguo 03-08-2022
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 172
Poder: 19
Efren2006 Va por buen camino
Thumbs up

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Hola.
No comentas qué versión de dlephi utilizas.
Revisa la unit DateUtils, donde ncontrarás muchas funciones de tratamiento de fechas/horas.

https://docwiki.embarcadero.com/Libr...stem.DateUtils

Directamente no hay ninguna (creo recordar) que haga lo que necesitas, pero hay varias estratégias para conseguirlo.
Por ejemplo, restar las fechas para obtener la diferencia en segundos y a partir de ahí sacer los segundos, minutos, horas,...

Otra opción es revisar las funciones ?????Between del link anterior y ver si con ellas puedes obtenerla.
Buenas Tardes Neftali

Uso Delphi 2009

Si entiendo lo de las estrategias,, pero como a veces, ya me ha pasado que me pongo hacer funciones, y luego resulta que ya Delphi las tienen implementadas...

Gracias por tu Tiempo... Siempre Atento a nuestras inquietudes
Responder Con Cita
  #5  
Antiguo 03-08-2022
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 172
Poder: 19
Efren2006 Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Dado que TDateTime internamente es un número puedes restar uno de otro y luego mostrarlo formateado...

Algo así:

Código Delphi [-]
var
  Desde : TDateTime;
  Haste : TDateTime;
  TiempoTranscurrido : string;
begin
  Desde := EncodeDateTime(2021, 10, 12, 10, 20, 30, 0);
  Hasta := EncodeDateTime(2022, 11, 15, 11, 22, 33, 0);

  TiempoTranscurrido := FormatDateTime('yy años mm meses dd dias hh horas nn minutos ss segundos', (Hasta - Desde));
end;
Buenas Tardes duilioisola

Lo voy a Probar .... Gracias
Responder Con Cita
  #6  
Antiguo 07-08-2022
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
En su día respondí con una función que calculaba la diferencia en años, meses y días a esta pregunta: Obtener Dias, Meses y Años a partir de una cantidad de días, pero se puede modificar para añadir también la diferencia de horas, minutos y segundos entra las dos fechas:


Hay que dar solución al problema de meses con diferente número de días y años bisiestos.
Código Delphi [-]
function RestaFechas(D1, D2:TDate): String;
var
  i: integer;
  dia0, mes0, ano0: WORD;
  dia, mes, ano: WORD;
  dias, meses, anos: WORD;
  D: integer;
  H: Extended;
begin
  D:= Ceil(D2)-Ceil(D1);
  H:= D2-D1-D;
  dias:= 0;
  meses:= 0;
  anos:= 0;

  DecodeDate(D1, ano0, mes0, dia0);
  DecodeDate(D1, ano, mes, dia);
  for i:= 0 to D-1 do
  begin
   D1:= D1+1;
   inc(dias);
   DecodeDate(D1, ano, mes, dia);
   if dia = dia0 then
   begin
     inc(meses);
     dias:= 0;
     if mes = mes0 then
     begin
       meses:= 0;
       inc(anos);
     end;
   end;
  end;
  Result:= IntToStr(anos) + ' años, ' +  IntToStr(meses) + ' meses, ' + IntToStr(dias) + ' dias y ' + TimeToStr(H) + ' horas';
end;


Saludos.

Última edición por escafandra fecha: 07-08-2022 a las 13:40:10.
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
Diferencia de minutos entre dos TDateTime jlrdz OOP 5 29-07-2011 19:28:46
Diferencia abreviada entre dos fechas (TDatetime) rretamar Trucos 2 09-09-2008 07:28:32
Obtener tiempo entre fechas YaninaGenia Oracle 5 04-05-2006 20:46:20
Numero de dias entre fechas (TDateTime) sierraja Varios 4 26-04-2005 18:29:02
Tiempo que hay entre dos fechas cmgenny Varios 3 03-10-2003 20:06:37


La franja horaria es GMT +2. Ahora son las 02:09: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