FoxPro/Visual FoxPro - Ayuda Asistencias

   
Vista:

Ayuda Asistencias

Publicado por Luis Polo  (134 intervenciones) el 21/01/2010 18:17:22
Hola amigos:
Estoy diseñando un programa de asistencia, pero no se como hacer el calculo de los minutos. Ejm :
Hora Ingreso 09:00
Tolerancia 09:20

Usuario1: Ingresa 09:10 Puntual
Usuario2: Ingresa 09:22 Tarde

Como seria para ser los calculos o los IF..
De tal manera que dependiendo de la entrada le pueda poner a lavez una campo; Puntual o Tarde.

Espero me ayuden por favor, con algo tan sencillo que me complica

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Asistencias

Publicado por Saul  (676 intervenciones) el 22/01/2010 15:58:05
MinutosGci = "00:05"
HEntra = "08:00"
mHoraentrada = "08:20" &&Lo que el reloj marco

mxMinutos = Minutos_Entre(HEntra,mHoraentrada,MinutosGci)

mEntroTarde = .T.
mNota='Entro Tarde, '

mHorasEntrada = mxMinutos

mDhEntradadesp = VAL(SUBSTR(mHorasEntrada,1,2))
mDmEntradadesp = VAL(SUBSTR(mHorasEntrada,4,5))


PROCEDURE Minutos_Entre
Para x1, x2,x3
If x1 >= x2
RETURN '00:00'
EndIf
If Empty(x1) Or Empty(x2)
RETURN '00:00'
EndIf
x_Hora = x1
x_Rt=0
x_Gc = VAL(x3)
Do While x_Hora < x2
x_Rt=x_Rt+1
x_Ho=Left(x_Hora,2)
x_Mi=Right('00'+Alltrim(Str(Val(Right(x_Hora,2))+1)),2)
If x_Mi='60'
x_Mi='00'
x_Ho=Right('00'+Alltrim(Str(Val(x_Ho)+1)),2)
If x_Ho='24'
x_Ho='00'
EndIf
EndIf
x_Hora=x_Ho+':'+x_Mi
EndDo

*-Para el dato de Gracia
IF x_Rt > x_Gc

x_Rt = x_Rt

IF mEntroTarde
x_Rt = x_Rt - x_Gc
IF x_Rt < 0 && Por si vino tarde y le alganzan los minutos
x_Rt = 0
ENDIF
ENDIF
ELSE
x_Rt = 0
mNota = 'Entro Tarde se aplico tiempo de Gracia, '
ENDIF

x_RtH = ((x_Rt/60) - INT(x_Rt/60))
x_RtM = ROUND(60 * x_RtH,2)
x_RTiempo = TRANSFORM(INT(x_Rt/60), "@L 99")+':'+TRANSFORM(INT(x_RtM), "@L 99")
RETURN (x_RTiempo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar