Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Resta de Horas mediante DateTimePicker?? (https://www.clubdelphi.com/foros/showthread.php?t=31665)

anghell77 14-05-2006 09:26:55

Resta de Horas mediante DateTimePicker??
 
Hola.....Gracias a todos por ayudar....
Delphi 7 Paradox7 ...

Estoy buscando la manera de realizar restas de tiempos (hh:mm:ss), dados desde dos dateTimePicker....esto...bien, yo no se para que...pues es algo que quiere el wey que desea bonificar a quienes permanecen mas tiempo dentro de la aplicacion, la cual, al entrar un usuario, registra fecha y hora de entrada, y al cambiar el usuario, realiza lo mismo, pero a la salida...

Personalmente, creo que es mejor el registro de entrada y salida unicamente, pero, ps al cliente lo que chinga...perdon, lo que pida....
:confused: :confused:

he visto la ayuda y he intentado decodificar el Tiempo, mediante el procedimiento, he buscado el tipo de variables que me almacenen el tiempo de un DTPkr, pero no he logrado mucho con ello....y pues en realidad no se....soy un poco lento en esto....sorry
...pero ps no enviaría la pregunta si lo hubiera solucionado....

Ayuda...y Gracias de Antemano:o

Lepe 14-05-2006 10:53:40

Mira las funciones de la unidad DateUtils:

MillisecondsBetween
etc...

Saludos

anghell77 15-05-2006 05:29:42

Lo mismo...
 
:o No he logrado solucionar nada con las funciones....
Lo siento...he batallado un resto con esta situacion....no creen ustedes que es mejor simplemente registrar hora de entrada y salida?? :o

ContraVeneno 15-05-2006 16:45:11

¿no puedes simplemente restar el valor de la entrada menos el valor de la salida?

si mi memoria no me falla, eso te dara un valor flotante donde la parte entera son los días y la parte decimal son las horas.

luisgutierrezb 15-05-2006 16:46:05

quieres saber cuanto duraron en el sistema??
digamos...
Código Delphi [-]
Var
  Entrada,Salida, diferencia:TDatetime;
  dias:Integer;
  horas:string;
begin
  Entrada := DatetimePicker1.Date;
  Salida := Datetimepicker2.date;
  diferencia := salida - entrada;
  //para conocer el numero de dias que estuvo en el sistema:
  dias := Trunc(diferencia);
  //para conocer cuantas horas estuvo en el sistema:
  horas := formatdatetime('hh:mm:ss', Frac(diferencia));
end;

Espero te sirva, saludos!!

anghell77 15-05-2006 19:03:56

Parece ser que con eso basto.....
 
Ok, Luis, parece que eso ha bastado para solucionar el problema este, he añadido un MaskEdit con Máscara de ShortTime para que me devuelva el valor...y falta hacer unos arreglos (conversiones) para realizar los calculos necesarios....Gracias....

Eso fue todo en este hilo....Gracias

Ferrari 04-07-2006 04:27:26

Checate con Esto
 
Necesitas sacar el total de minutos ..prueba con este query:

select (3600*(sum(Datepart(hour,salida))) + 60*(sum(Datepart(minute,salida))) + (sum(Datepart(second,salida))) )-
(3600*(sum(Datepart(hour,entrada))) + 60*(sum(Datepart(minute,entrada))) + (sum(Datepart(second,entrada))) ) as TotalMinutos
from nres nolock
where convert(varchar (8),Entrada,112)='20050307'
and NoEmp=12

una vez que tengas el numero de minutos lo armas de nueva cuenta:
procedure TForm1.Button3Click(Sender: TObject);
var
T, H, M, S: Integer;
Time: TTime;
begin
//T := Query1['total'];
T := 27372;
H := T div 3600;
M := (T mod 3600) div 60;
S := (T mod 3600) mod 60;
Time := EncodeTime(H, M, S, 0);
label4.Caption:= TimeToStr(Time);
end;


La franja horaria es GMT +2. Ahora son las 18:53:21.

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