Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #10  
Antiguo 23-01-2008
saltamirano saltamirano is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
saltamirano Va por buen camino
Resta de horas y minutos

Cita:
Empezado por angara Ver Mensaje
Probe el codigo me funciona para las horas pero en mi caso tambien nececito los minuto y segundos, para un sistema de control de ingreso de personal
gracias
Saludos amigos:

He revisado este hilo y me ha servido de mucha utilidad, tengo dos DateTimePicker, en los cuales se ingresa Hora de Inicio y Hora de Fin, en mi aplicación requiero restar las dos horas para obtener el tiempo ocupado. Tengo el siguiente código:

procedure TForm_Soporte.DateTimePicker_HraIniChange(Sender: TObject);
var dMiHraIni : TTime;
var HraIniStr: string;
begin
dMiHraIni := DateTimePicker_HraIni.Time;
HraIniStr := (TimeToStr(dMiHraIni));
self.DBEdit_HraIni.Text := HraIniStr;
end;

procedure TForm_Soporte.DateTimePicker_HraFinChange(Sender: TObject);
var dMiHraFin, tiempo1, tiempo2 : TTime;
var HraFinStr, dif_hra, dif_min, dif_seg, time: string;
var dif_hra_int, dif_min_int : integer;
var min_calc, seg_calc: integer;

begin
dMiHraFin := DateTimePicker_HraFin.Time;
HraFinStr := (TimeToStr(dMiHraFin));
self.DBEdit_HraFin.Text := HraFinStr;
tiempo1:= DateTimePicker_HraFin.Time;
tiempo2:= DateTimePicker_HraIni.Time;

dif_hra := inttostr(HoursBetween(tiempo2 , tiempo1));
dif_hra_int := strtoint(dif_hra);

if dif_hra_int > 0 then
begin
min_calc := ((MinutesBetween(tiempo2 , tiempo1))mod (dif_hra_int * 60));
dif_min := inttostr(min_calc);
end
else
begin
dif_min := inttostr(MinutesBetween(tiempo2 , tiempo1));
end;

if min_calc > 0 then
begin
seg_calc := (SecondsBetween(tiempo2 , tiempo1))mod (min_calc * 60);
dif_seg := inttostr(seg_calc);
end
else
begin
dif_seg := inttostr(SecondsBetween(tiempo2 , tiempo1));
end;
}
time := dif_hra + ':'+ dif_min + ':'+ dif_seg;
self.DBEdit_time.Text := time;
self.DBEdit_time.Show
end;

Al restar las horas por ejemplo: 8:00 a 14:30 el resultado es de: 6:29 y no
6:30 como debería ser.

Por fa si alguien tiene idea de lo que está pasando necesito una ayudita. Mil Gracias!!
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 13:32:39.


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
Copyright 1996-2007 Club Delphi