FoxPro/Visual FoxPro - aritmetica de fechas

 
Vista:

aritmetica de fechas

Publicado por edgar (38 intervenciones) el 21/09/2002 18:32:38
amigos:

estoy tratando de hacer una aplicacion donde pueda llevar el conteto de tiempos, es decir, la hora de entrada de un empleado y la hora de salida, hacer una operacion con estos datos y obtener el numero de horas y minutos trabajados. por ejemplo si un empleado entra a las 12:05 am y sale a las 13:10 el resultado me debe dar 1hora y 5 minutos, que puedo hacer para realizar esto?, ademas en que tipo de campo puedo almacenar estos valores, ojala me puedan ayudar.

gracias
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
sin imagen de perfil

RE:aritmetica de fechas

Publicado por Guillermo Arias (294 intervenciones) el 22/09/2002 13:37:53
Es simple, yo lo manejo así:
primero convierto cada expresión a formato decimal (p ej, 1 hora con 30 minutos sería 1.5)
después el resultado de tipo decimal lo convierto a formato hora .

las horas las expreso con campo numérico de HHH horas MM minutos.

** convertir horas a decimal: **
*VElem es la cantidad de HHHMM

vHoras =INT(VAL(vElem)/100)
vMinutos=((VAL(vElem)/100)-vHoras)*100
vElem=STR(vHoras+(vMinutos/60),20,10)

** convertir horas decimal a horas normales **
*Valor=horas en formato decimal

vHoras=INT(Valor)
vMinutos=ROUND((vValor-vHoras)*60,0)
vHoraMin= (vHoras*100)+vMinutos

Si te parece confuso , me escribes
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

RE:aritmetica de fechas

Publicado por Claudio González Soto (35 intervenciones) el 23/09/2002 17:37:20
Hola Edgar!
Revisa este código que acabo de realizar, creo que te puede servir.
Si Tienes alguna duda escribeme al E-Mail
vEntrada = Time()
Wait Windows ("Esta es la hora de entrada al sistema"+" "+vEntrada)
Inkey(1)
vSalida = Time()
Wait Windows ("Esta es la hora de salida al sistema"+" "+vSalida)
vSalida = cTot(vSalida) - cTot(vEntrada)
? vSalida/60
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