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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 231
Poder: 14
darkamerico Va por buen camino
Exclamation Funcion para obtener los minutos entre 2 Horas

Saludos amigos, resulta que estoy haciendo un modulo para controlar la asistencia de docentes en un Centro Pre Universitario, este modulo permitirá calcular los salarios de dichos docentes.

Tengo una tabla con los horarios del Docente:

Código SQL [-]
CREATE TABLE `horario` (
  `id_horario` int(11) NOT NULL,
  `iddocente_fk` int(11) DEFAULT NULL,
  `idcurso_fk` int(11) DEFAULT NULL,
  `id_dia` smallint(6) DEFAULT NULL,
  `hora_ini` time DEFAULT NULL,
  `hora_fin` time DEFAULT NULL,
  PRIMARY KEY (`id_horario`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Y Tengo una tabla para registrar las asistencias de los docentes:

Código SQL [-]
CREATE TABLE `doc_asistencia` (
  `id_asistdocente` int(11) NOT NULL,
  `iddocenteOrig_fk` int(11) DEFAULT NULL,
  `iddocenteReemplazante_fk` int(11) DEFAULT NULL,
  `idcurso_fk` int(11) DEFAULT NULL,
  `fecha` date DEFAULT NULL,
  `nombreDia` varchar(15) DEFAULT NULL,
  `hora_entrada` time DEFAULT NULL,
  `hora_salida` time DEFAULT NULL,
  `mindif_entrada` int(11) DEFAULT NULL,
  `mindif_salida` int(11) DEFAULT NULL,
  PRIMARY KEY (`id_asistdocente`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Como puede verse aqui: Necesito grabar la hora de entrada tomando la hora del equipo y calcular la diferencia en minutos de la hora tomada del sistema con la hora de inicio de su horario, ejemplo:

Hora del Sistema: 14:02:00
Hora de Inicio Horario Docente: 14:00:00

La rutina debería arrojar -2 min (negativo) dado que se esta registrando pasados dos minutos de su hora de ingreso. Mientras que:

Hora del Sistema: 13:57:00
Hora de Inicio Horario Docente: 14:00:00

La rutina debería arrojar 3 min (positivo).

Intente usando la función HourSpan() pero no arroja el valor negativo como deseo: Aqui les muestro mi rompecabezas de codigo:

Código Delphi [-]
procedure TfrmAsistDocentes.lstHorarioActivoClick(Sender: TObject);
var
  horaIni, horaFin, horaActual: string;
  posPunto, difMinutos:integer;
begin
  if lstHorarioActivo.ItemIndex<>-1 then
  begin
    posPunto:=pos('.',lstHorarioActivo.Items[lstHorarioActivo.ItemIndex]);
    idHorarioSelected:=StrToInt(Copy(lstHorarioActivo.Items[lstHorarioActivo.ItemIndex],0,posPunto-1));
    dm.q_HorarioXID.Close;
    dm.q_HorarioXID.Params[0].AsInteger:=idHorarioSelected;
    dm.q_HorarioXID.Open;

    if(length(dm.q_HorarioXID.FieldByName('hora_ini').AsString)>0)then
    begin
      horaIni:=dm.q_HorarioXID.FieldByName('hora_ini').AsString;
      horaFin:=dm.q_HorarioXID.FieldByName('hora_fin').AsString;
      horaActual:=TimeToStr(Now);
     // if StrToTime(horaActual)-StrToTime(horaIni)>0 then
        difMinutos:=HourSpan(StrToTime(horaActual),StrToTime(horaIni));
      //else
      //  difMinutos:=MinutesBetween(StrToTime(horaActual),StrToTime(horaIni))*-1;

      if difMinutos>=0 then
        lblDifMinutos.Font.Color:=clBlue
      else
        lblDifMinutos.Font.Color:=clRed;
      lblDifMinutos.Caption:=IntToStr(difMinutos) + ' min.';
      if difMinutos>5 then
        btnRegistrarAsistDoc.Enabled:=False
      else
        btnRegistrarAsistDoc.Enabled:=True;
    end;
  end;

end;

Les agradecería mucho apoyo con este problema, pues ya me quede sin ideas.

Un Abrazo
Responder Con Cita
 



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
calculo de diferencia entre dos horas y minutos gonza_619 Varios 1 22-05-2010 20:35:31
Cantidad de Minutos entre 2 Horas con el DateTimePicker ANDRES86 OOP 11 02-07-2007 23:11:19
MinuteSpan... minutos entre horas mjjj Varios 1 25-06-2007 17:28:59
Funcion para pasar de minutos a horas Asshole Varios 1 13-06-2005 13:23:27
Calcular Horas y minutos entre dos TTime Delphos Varios 4 26-01-2004 17:10:14


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


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