Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-04-2007
alfil123 alfil123 is offline
Miembro
 
Registrado: nov 2005
Posts: 116
Poder: 19
alfil123 Va por buen camino
restar horas, minutos en access

hola amigos, les escribo para pedirles sus sabios consejos, bueno estoy haciendo un sistema de control de personal donde debe manejar la horas laboradas por los trabajadores, mi base de datos es access y los campos de hora de ingreso y salida son de tipo fecha, mi problema es que nose como puedo calcular las horas y minutos trabajados en un dia,
por ejemplo
el trabajador a0000 entra a las 8:00:00 y sale a las 12:00:10 bueno trabajo 4:00:10 horas, bueno este resultado me gustaria que me lo diera access pero desde delphi tambien estaria bien, este resultado lo tengo que llevar aun reporte donde debo sumar todas has horas trabajada entre dos fechas dadas,
Responder Con Cita
  #2  
Antiguo 19-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola alfil123
Que te de la hora access, no se, pero sacar la hora del delphi es facil asi:
un boton
tres edit
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
hora1, hora2: TTime;
horat: TTime;
begin
   hora1:= StrToTime(Edit1.Text);
   hora2:= StrToTime(Edit2.Text);
   horat := hora1 - hora2;
   Edit3.Text:= TimeToStr(horat) ;
end;
Si cambias los edit por los dbedit de la base de datos tendras la diferencia entre la entrada y la salida igualmente.
Saludos
Responder Con Cita
  #3  
Antiguo 19-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Se me olvido, para poner las horas hay que ponerlas con dos puntos asi:
Cita:
Edit1= 11:00
Edit2= 12:00
Edit3= 01:00 // resultado
Saludos
Responder Con Cita
  #4  
Antiguo 19-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Mientras que no haya turnos de noche todo funcionará de maravilla, pero tenlo en cuenta por si acaso, si entra a las 23:00:00 y sale a la 1:00:00 de la madrugada, la resta dará 22 horas de diferencia. Si restas teniendo en cuenta la fecha y hora (formato dd/mm/yyyy hh:nn:ss) no tendrás problemas. Para esto hay que cambiar el tipo de campo y que almacene también la 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
  #5  
Antiguo 19-04-2007
Avatar de aldmoscardi
aldmoscardi aldmoscardi is offline
Miembro
 
Registrado: oct 2006
Posts: 38
Poder: 0
aldmoscardi Va por buen camino
Hola, mi experiecia personal me dice que no consideres los segundos, trabaja tomando las horas y los minutos, hace una funcion que te transforme las horas y minutos en minutos, luego realiza las operacion entre ellas y despues convertila en horas y minutos nuevamente.
si te interesan las funciones que yo utilice para realizar esos calculos mandame un mai a aldmoscardi@arnet.com.ar y te las paso saludos y suerte
Responder Con Cita
  #6  
Antiguo 23-04-2007
Delfin Delfin is offline
Registrado
 
Registrado: mar 2005
Posts: 5
Poder: 0
Delfin Va por buen camino
Resta de horas

Yo tengo un problema similar. Quiero restar dos horas pero obtener el resultado en minutos. Algo como esto:

19:35:00 - 19:00:00 ----> y el resultado serian 35:00

alguien me puede ayudar??
Responder Con Cita
  #7  
Antiguo 23-04-2007
Avatar de aldmoscardi
aldmoscardi aldmoscardi is offline
Miembro
 
Registrado: oct 2006
Posts: 38
Poder: 0
aldmoscardi Va por buen camino
hola, con esta funcion convierto los minutos a horas

Código Delphi [-]
Function TDmod.MinToHours(minutos : Integer) : String;
var
    min      : String;
    Horas    : String;
    TotHs    : String;
    TotMin   : String;
begin
Decimalseparator := '.';
horas  := FloatToStr(minutos / 60);
min    := FloatToStr((Frac(minutos / 60) * 60));

TotHs  := FloatToStr(Int(StrToFloat(horas)));
TotMin := FloatToStrF(StrToFloat(min), FFFixed,1,0);
if Length(TotHs) = 1 then
  begin
    TotHs := '0' + FloatToStr(Int(StrToFloat(horas)));
  end;
if Length(TotMin) = 1 then
  begin
    TotMin := '0' + FloatToStrF(StrToFloat(min), FFFixed,1,0);
  end;
result :=  Toths + ':' + TotMin;
end;

///////////////////////////////////
la funcion para pasar de horas a minutos seria algo asi como:

Código Delphi [-]
Function HoursToMin(Horas : String) : Integer;
var
    CanHoras    : Integer;
    CanMinutos : Integer;
begin
   canHoras    := StrToInt(Copy(horas,0,2));
   CanMinutos := StrToInt(copy(horas, 3, 5));
   Result := CanHoras + CanMinutos; 
end;

Esta funcion retorna la hora en formati munutos, tene en cuenta que un dia tiene 1440 minutos al ser numeros enteres poder realizar todas las operaciones que desees y luego pasas ese resultado a la funcion minutos to horas y te retorna en formato hh:mm
Esto es un rebusque interesante ya que en el acces trabajar en formato de horas es un verdadero problema
saludos espero te sea util.
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
sumar horas y minutos acrophet Varios 1 29-01-2004 17:29:46
Calcular Horas y minutos entre dos TTime Delphos Varios 4 26-01-2004 17:10:14
Restar 2 horas... CFPA86 Varios 1 17-10-2003 20:30:54
Sumar Horas o Minutos cso2000 Varios 2 19-06-2003 17:56:40
resta horas y minutos botones67 Varios 4 12-06-2003 18:55:54


La franja horaria es GMT +2. Ahora son las 04:44:12.


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