urgente, asunto de trabajo laboral

nessthor
01 de Julio del 2003
En el trabajo en donde elaboro utilizan VisualFoxPro. Hay un sistema donde cada hora el usuario tiene que hacer un login, debido que esta programado para sacar de operacion al usuario. Cada vez que el usuario realiza un login, es registrado en una tabla. Esta tabla, contiene:codigo(un consecutivo)caract10,fecha date8, hora (caracter 5),detalle (caracter 50).
Necesito realizar lo siguiente:saber cuento tarda en ingresar el usuario al sistema. Tomando el tiempo anterior y el tiempo actual. El formato de hora es XXXXX y se observa por ejemplo: "12:45", no logro realizar la operacion con los tiempos.
Me podrian dar sugerencias!!!!
Si logro esto , tengo la posibilidad de kedarme en la empresa!!! por favor!!!!
Es mi prueba de fuego.....tengo esta semana para terminarlo.
Si necestan informacion me dicen.

Emilson
01 de Julio del 2003
Hola estoy viendo tu problema y veo para empesar que el campo de hora deberia de ser 6 caracteres pues que deberia de quedar en este formato: hh:mm:ss, luego es facil, si tubieramos una tabla donde se almacena la hora de entrada y la hora de salida y queremos ver cuanto tardo en entrar solo deberias de buscar el ultimo registro de salida y el ultimo registro de entrada y descomponer la hora tomando por aparte la hora, los minutos y los regunto y luego solo seria cuestion de restar. si aun tienes tiempo solo enviame un correo y te enviare un codigo de ejemplo.

Emilson
01 de Julio del 2003
ah!, se me olvidaba, si no puedes solucionar este problema por ti mismo que yo lo veo fasil no deberias de aplicar para el trabajo, porque inmaginate que para la persona que te esta asiendo el examen ese es el más fasil!!!, te puedes inmaginar con lo que podrias toparte y no creo que vayas a estar pidiendo solicitando ayuda para cada piedra que cuentres en el camino, pero si lo quieres intentar a ya tu. Te deseo suerte

Alex
01 de Julio del 2003
Te hice una funcion simple.
De todas maneras.....Emilson tiene razon... Mi recomendacion es que le des duro a los libros y sigas aprendiendo lo mas que puedas, OK ?

PARAMETER TIME1,TIME2

* Esta funcion es simple, pero solo sirve, si se aplica dentro del mismo dia
* Caso contrario, los valores de horas, daran negativo y mal
* SINTAXIS: = INTERVALO(VAR1,VAR2) donde VAR1 y VAR2 son dos string de la
* forma "HH:MM:SS"

MINUTOS1= VAL(SUBSTR(TIME1,4,5))
MINUTOS2= VAL(SUBSTR(TIME2,4,5))

HORA1 = VAL(SUBSTR(TIME1,1,3))
HORA2 = VAL(SUBSTR(TIME2,1,3))

IF HORA1 = HORA2 && DENTRO DE LA MISMA HORA
nDIF_MINUTOS= MINUTOS2 - MINUTOS1
DIF_MINUTOS = ALLTRIM(STR(nDIF_MINUTOS))
nDIF_HORAS = 0
=MESSAGEBOX("La diferencia es de: "+dif_minutos+" minutos.",32,"Diferencia")
ELSE
nDIF_HORAS = HORA2 - HORA1
nDIF_MINUTOS= MINUTOS2 - MINUTOS1
DIF_MINUTOS = ALLTRIM(STR(nDIF_MINUTOS)) && Pasado a char, para visualizar
DIF_HORAS = ALLTRIM(STR(nDIF_HORAS)) && IDEM
=MESSAGEBOX("La diferencia entre una y otra hora es de: ";
+DIF_HORAS+" horas con "+dif_minutos+" minutos",32,"Diferencia")
ENDIF


Saludos
Ale



osvaldo
01 de Julio del 2003
prueba para ver si esto te sirve, sino me explicas mejor a ver si entiendo.
si tienes en una labla la fecha, hora, el login, me imagino que por medio del login buscaras el usuario para hacer los calculos.
bueno los calculos que creo te pueden servir:

vfecha = fecha && la fecha
vhora_ini && hora (la inicial)
vhora_fin && hora (la ultima)

vfecha_ini = CTOT(DTOC(vfecha)+" "+vhora_ini)
vfecha_fin = CTOT(DTOC(vfecha)+" "+vhora_fin)

calculo = vfecha_fin - vfecha_ini
(calculo / 3600) && para sacar las horas
(calculo / 60) && para sacar los minutos, etc..

espero te ayude en algo... ok
en este ejmplo estoy asumiendo que la fecha es la misma, por eso la utilizo para calcular la vfecha_ini, vfecha_fin. si las fechas son distintas tendras que varias la vfecha_fin.

nessthor
01 de Julio del 2003
No me funciona, me sale un mensaje:"function argument value, type or count is invalid"

Lo estoy haciendo en un form. En el form, tengo ,codigo, fecha, hora, dos mas que puse, hora anterior, tiempo.
Hora: hora en donde ingreso el usuario, por ejemplo 14:25
HoraAnterior: hora que ingrso el usuario anteriormente, ejemplo 13:15
Tiempo: diferencia entre ambos tiempos, ejemplo 01:15
Para ello solo uso una tabla que me da esa informacion, en el form solo necesito eso dos datos, la hora anterior y el tiempo.
Por suepuesto el dato de la hora anterior lo tengo que traer de la misma tabla, del campo anterior.
La tabla se llama Bita1.

Gracias!!!