FoxPro/Visual FoxPro - Problema con minutos y segundos

 
Vista:

Problema con minutos y segundos

Publicado por Marcelo (70 intervenciones) el 29/11/2012 17:06:42
Hola amigos...espero puedan ayudarme.
Tengo el siguiente problema:...tengo una tabla donde registro datos como codigo, fecha, hora, nombre, entre otros. La idea del formulario es mostrar datos que esten dentro de un rango de fechas, luego de estos datos se deben seleccionar de acuerdo a un rango de horas (previamente seleccionado por el usuario) con un intervalo tambien definido por el usuario. Me explico

el usuario debe ingresar un rango de fechas luego un rango de horas y cada cuantos minutos o segundos mostrar los datos...se entiende?

por ejemplo:
el rango de fechas podria ser desde el 20-11-2012 al 28-11-2012...
el rango horario puede ser desde las 8 am hasta las 10:am...
y la secuencia a mostrar puede ser en minutos ó segundos
si fueran minutos podria ser cada 5 y si fueran segundos cada 30 ... mi problema es como hago para ir incrementando los datos?...con for e tratado pero no llego a lo que quiero...

Ojala me entiendan y me puedan ayudar. desde ya muchas 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

Problema con minutos y segundos

Publicado por Saul (728 intervenciones) el 30/11/2012 01:55:52
La verdad no te entiendo viejo..
pero te paso una rutina que uso para comparar horarios quien quita y te siva
porque con las fechas no hay clavo..

saludos

Que pasa.. te explico

1
2
3
4
5
6
7
8
mHoraentrada = 8:00      &&Esta es la hora que tiene que entrar
HEntra    = 8:05                 &&Esta es la hora real que marco el Reloj
 
mxMinutos = Entre_Minutos(mHoraentrada,HEntra,'00:00') 
 
if mxMinutos > 0
      mNota='Entro Tarde '
endif


Espero y te sirva o por lo menos te da ida de lo que quieres..

saludos

Att

Saúl Hernández

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Function Entre_Minutos()
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

Problema con minutos y segundos

Publicado por Marcelo (70 intervenciones) el 30/11/2012 18:24:50
Gracias Saul...pero lo que necesito es otra cosa...te pongo el codigo haber si me ayudas...gracias

*Aqui obtengo los datos que necesito...
1
2
3
m_valor1 y m_valor2 son las horas (08:00:00 a 09:00:00)
SELECT a.fec_tren, a.hor_tren, a.vel_tren FROM movimientos as a WHERE BETWEEN(a.fec_tren,m_fecini,m_fecfin) .and. ;
BETWEEN(TTOC(a.hor_tren,2),TTOC(m_valor1,2),TTOC(m_valor2,2)) INTO CURSOR selval


*aqui obtengo el numero de segundos que para este ejemplo deberian ser 3600 (9-8) nos da 1 hora..
1
m_tiempo = m_valor2 - m_valor1


*Aqui recorro el cursor y es aqui donde tengo el problema, la idea es que el usuario decida cada cuantos minutos o segundos seria el intervalo de *tiempo para recorrer el cursor....por ejemplo cada 5 segundos ó cada 1 minuto...

* m-valddo es la variable que contiene el valor del intervalo de tiempo.
1
2
3
4
5
6
7
8
9
10
11
12
GO TOP IN selval
FOR j = 0 TO m_tiempo && STEP m_valddo
        DO WHILE !EOF('selval')       
            APPEND BLANK IN resulgrid1
            REPLACE resulgrid1.fecres WITH selval.fec_tren IN resulgrid1
            REPLACE resulgrid1.horres WITH TTOC(selval.hor_tren,2) IN resulgrid1
            REPLACE resulgrid1.valres WITH selval.vel_tren IN resulgrid1
             SKIP m_valddo IN selval
        ENDDO
    m_tiempo = m_tiempo + m_valddo
ENDFOR
thisform.Refresh
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

Problema con minutos y segundos

Publicado por Saul (728 intervenciones) el 04/12/2012 16:05:11
Hola Marcelo..

Creo que tu mismo tienes ya tu solución..
dices que lo que le falta a tu for es el intervalo en que lo quieres si en minutos o segundos.. obviamente ese dato tiene que venir de un artchivo.dbf o txt o xls lo que sea donde lo tengas guardo por usuario ok.

Lo que te queda es que todo este en segundos. (no para el usuario) el usuario puede elegir.

1.- Minutos = A
2.- Segundos = B

C = A * 60

C = B

Para que todo te lo pase a segundos no se si me explico.. y con respecto a las horas pues multiplicalo por 60 para minutos luego por 60 para segundos.. (no le veo el problema) ??

Saludos
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