Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Fecha y hora por separado como comparar (https://www.clubdelphi.com/foros/showthread.php?t=31897)

zugazua2001 21-05-2006 01:37:34

Fecha y hora por separado como comparar
 
Hola amigos del foro, tengo dos campos por separado uno es la hora y el otro es la fecha de la fichada de un empleado.

Existe algun modo de concatenar obtener la diferencia en horas de dos fichadas de un empleado de manera rapida.

Ejm:
fichada 1: hora: 05:05 fecha: 01/03/2006
fichada 2: hora: 12:06 fecha: 02/03/2006

Cant Horas: 31 horas 1 minuto.

Gracias por todo nuevamente.
Saludos

Lepe 21-05-2006 10:32:03

¿por código delphi o SQL?

zugazua2001 22-05-2006 03:34:38

Por codigo delphi
 
Yo decia por codigo delphi.
Si podes orientame tambien con SQL.

Gracias por tu ayuda.

Cita:

Empezado por Lepe
¿por código delphi o SQL?


luisgutierrezb 22-05-2006 18:15:57

suponiendo que son variables TDateTime, en delphi seria

Código Delphi [-]
var 
  diferenciaDias:Integer;
  diferenciaHoras:TDateTime;
begin
  diferenciaDias := Trunc(fichada2) - Trunc(fichada1);
  diferenciaHoras := Frac(fichada2) - frac(fichada1);

  //para mostrar:
  ShowMessage('diferencia en dias: ' + IntToStr(diferenciadias));
  ShowMessage('diferencia en horas: ' + FormatDateTime('hh:nn:ss', diferenciahoras);
end;

Cita:

Empezado por zugazua2001
Hola amigos del foro, tengo dos campos por separado uno es la hora y el otro es la fecha de la fichada de un empleado.

Existe algun modo de concatenar obtener la diferencia en horas de dos fichadas de un empleado de manera rapida.

Ejm:
fichada 1: hora: 05:05 fecha: 01/03/2006
fichada 2: hora: 12:06 fecha: 02/03/2006

Cant Horas: 31 horas 1 minuto.

Gracias por todo nuevamente.
Saludos


Lepe 22-05-2006 18:19:34

Se me olvidó preguntar para qué base de datos (paradox, firebrid etc.). Para Firebird tienes este hilo aunque da los minutos, tendrás que convertirlo.


por código delphi tienes varias opciones:
- Si lo tienes guardado como texto, intenta con TablaNombreCampo.AsDate, AsTime
Otra opción es concatenando la fecha y hora (como texto) y pasarsela a StrToDatetime
- Si no, usa EncodeDatetime, EncodeDate, RecodeTime, etc de la unidad DateUtils

Tendrás que hacerlo a mano, hoy no estoy muy inspirado, solo se me ocurre esto:
Código Delphi [-]
  procedure Tform1.btn1Click(Sender: TObject);
  var h,m:Word;
      s:string;
  begin
  h := HoursBetween(Now,Now-5);
  m := MinutesBetween(Now  ,Now-5) - (h*60);// restamos las horas que han pasado

 ShowMessage(IntToStr(h)+':'+IntToStr(m));
end;

Saludos

zugazua2001 22-05-2006 18:55:46

Gracias por todo.
 
Como en tantas otras oportunidades me han dado una mano.
Muchisimas gracias


La franja horaria es GMT +2. Ahora son las 19:56:06.

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