In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

COMO OBTENER MINUTOS

Foro de Xailer profesional en español
Responder
PEDRO DE LEON RODAS[1]
Mensajes: 136
Registrado: Jue Jul 05, 2007 4:52 am

COMO OBTENER MINUTOS

Mensaje por PEDRO DE LEON RODAS[1] »

Amigos, estoy tratandode hacer un sistema para checar horas y salidas de
empleados.
Estoy tratando de trabajar con DATETIME().
Mi pregunta. ¿ Como puedo obtener el Total de minutos entre dos DateTime()?
Ejemplo:
Entrada1=Datetime() /// Esta es mi variable en la que guardo el primer
DATETIME()
Luego dejo pasar 10 minutos y obtengo mi segundo DATETIME()
Logicamente deberia ser asi
Resultado=Salida1-Entrada1 // Aqui me daria los segundos para que lo pueda
convertir despues, pero no lo hace
Espero haberme explicado.
De antemano mil gracias
desarrollo
Mensajes: 109
Registrado: Lun Abr 02, 2007 10:12 am

COMO OBTENER MINUTOS

Mensaje por desarrollo »

Pedro,
Lo habitual es pasar a segundos todo, hacer el calculo y volverlo a
convertir al formato deseado.
Saludos
Jose A. Suarez
"PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje
news:[email=47b3f523@ozsrv2.ozlan.local...]47b3f523@ozsrv2.ozlan.local...[/email]
> Amigos, estoy tratandode hacer un sistema para checar horas y salidas de
> empleados.
>
> Estoy tratando de trabajar con DATETIME().
>
> Mi pregunta. ¿ Como puedo obtener el Total de minutos entre dos
> DateTime()?
>
> Ejemplo:
>
> Entrada1=Datetime() /// Esta es mi variable en la que guardo el primer
> DATETIME()
> Luego dejo pasar 10 minutos y obtengo mi segundo DATETIME()
>
> Logicamente deberia ser asi
> Resultado=Salida1-Entrada1 // Aqui me daria los segundos para que lo pueda
> convertir despues, pero no lo hace
>
> Espero haberme explicado.
>
> De antemano mil gracias
>
>
>
>
>
>
jrcpoli
Mensajes: 240
Registrado: Mié Oct 25, 2006 8:55 pm

COMO OBTENER MINUTOS

Mensaje por jrcpoli »

Saludos Pedro:
Te paso unas funciones:
FUNCTION FT_ELAPSED(dStart, dEnd, cTimeStart, cTimeEnd)
// Calcula el tiempo transcurrido entre dos fechas con las horas
// Ejemplo 29/06/2006 22:00:00 y las 03/07/2006 21:30:00
// El tiempo en segundos de obtiene del array[4,2]
LOCAL nTotalSec, nCtr, nConstant, nTemp, aRetVal[4,2]
IF ! ( VALTYPE(dStart) $ 'DC' )
dStart := DATE()
ELSEIF VALTYPE(dStart) == 'C'
cTimeStart := dStart
dStart := DATE()
ENDIF
IF ! ( VALTYPE(dEnd) $ 'DC' )
dEnd := DATE()
ELSEIF VALTYPE(dEnd) == 'C'
cTimeEnd := dEnd
dEnd := DATE()
ENDIF
IF( VALTYPE(cTimeStart) != 'C', cTimeStart := '00:00:00', )
IF( VALTYPE(cTimeEnd) != 'C', cTimeEnd := '00:00:00', )
nTotalSec := (dEnd - dStart) * 86400 + ;
VAL(cTimeEnd) * 3600 + ;
VAL(SUBSTR(cTimeEnd,AT(':', cTimeEnd)+1,2)) * 60 + ;
IF(RAT(':', cTimeEnd) == AT(':', cTimeEnd), 0, ;
VAL(SUBSTR(cTimeEnd,RAT(':', cTimeEnd)+1))) - ;
VAL(cTimeStart) * 3600 - ;
VAL(SUBSTR(cTimeStart,AT(':', cTimeStart)+1,2)) * 60 - ;
IF(RAT(':', cTimeStart) == AT(':', cTimeStart), 0, ;
VAL(SUBSTR(cTimeStart,RAT(':', cTimeStart)+1)))
nTemp := nTotalSec
FOR nCtr = 1 to 4
nConstant := IF(nCtr == 1, 86400, IF(nCtr == 2, 3600, IF( nCtr ==
3, 60, 1)))
aRetVal[nCtr,1] := INT(nTemp/nConstant)
aRetval[nCtr,2] := nTotalSec / nConstant
nTemp -= aRetVal[nCtr,1] * nConstant
NEXT
RETURN aRetVal
//---------------------------------------------------------- --------------------
FUNCTION FT_ELTIME(cTIME1,cTIME2)
// Calcula el tiempo transcurrido entre dos horas
// Ejemplo "12:00:00" y las "23:00:00" el tiempo lo da en hh:mm.ss
local nTIME1, nTIME2, nDELSECS, nHRS, nMINS, nSECS, nSECS1, nSECS2
nSECS1 := (val(substr(cTIME1,1,2)) * 3600) +;
(val(substr(cTIME1,4,2)) * 60) + (val(substr(cTIME1,7)))
nSECS2 := (val(substr(cTIME2,1,2)) * 3600) +;
(val(substr(cTIME2,4,2)) * 60) + (val(substr(cTIME2,7)))
nDELSECS := abs(nSECS2 - nSECS1)
nHRS := int(nDELSECS / 3600)
nMINS := int((nDELSECS - nHRS * 3600) / 60)
nSECS := nDELSECS - (nHRS * 3600) - (nMINS * 60)
RETURN right("00" + ltrim(str(nHRS)),2) + ;
":" + ;
right("00" + ltrim(str(nMINS)),2) + ;
":" + ;
right("00" + ltrim(str(nSECS)),2)
//---------------------------------------------------------- --------------------
FUNCTION TiempoSegundos(dInicial, dFinal, hInicial, hFinal)
// Tiempo total en segundo entre dos fechas y horas
*
LOCAL nSegundos, aDataSeg:= {}
*
aDataSeg := FT_ELAPSED(dInicial, dFinal, hInicial, hFinal)
*
nSegundos := aDataSeg[4,2] //La posición 4,2 da segundos
*
RETURN nSegundos
Debes de incorporar a tu aplicación la librerí­a ct.lib que esta en
librerí­as de xHarbourd y para incorporala al proyecto ya sabes
propiedades del proyecto->librerias y buscas la librerí­a en donde tengas
instalado xHarbourd en la carpeta lib.
José Ramón Castro.
PEDRO DE LEON RODAS escribió:
> Amigos, estoy tratandode hacer un sistema para checar horas y salidas de
> empleados.
>
> Estoy tratando de trabajar con DATETIME().
>
> Mi pregunta. ¿ Como puedo obtener el Total de minutos entre dos DateTime()?
>
> Ejemplo:
>
> Entrada1=Datetime() /// Esta es mi variable en la que guardo el primer
> DATETIME()
> Luego dejo pasar 10 minutos y obtengo mi segundo DATETIME()
>
> Logicamente deberia ser asi
> Resultado=Salida1-Entrada1 // Aqui me daria los segundos para que lo pueda
> convertir despues, pero no lo hace
>
> Espero haberme explicado.
>
> De antemano mil gracias
>
>
>
>
>
>
>
José Ramón Castro.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9253
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

COMO OBTENER MINUTOS

Mensaje por ignacio »

Pedro,
En principio restándolos.
Del Blog de René http://objetoperistente.blogsport.com
** Operaciones con DateTime
? d1 := {^ 2007/04/26 18:30:00 } //devuelve: 04/26/2007 18:30:00.000 ? d2 :=
StoD("20070426") // devuelve: 04/26/2007
? nDiff := d1-d2, "dias" // devuelve: 0.77 días
? TString( nDiff*86400 ) // devuelve: 18:30:00
** Añadiendo 2 dias a un DateTime
? d1 + 2 // devuelve: 04/28/2007 18:30:00.000
** Añadiendo 2 horas a un DateTime
? d1 + 2/24 // devuelve: 04/26/2007 20:30:00.000
** Añadiendo 2 minutos a un DateTime
? d1 + 2/(24*60) // devuelve: 04/26/2007 18:32:00.000
** Añadiendo 2 segundos a un DateTime
? d1 + 2/(24*3600) // devuelve: 04/26/2007 18:30:02.000
Saludos,
"PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje
news:[email=47b3f523@ozsrv2.ozlan.local...]47b3f523@ozsrv2.ozlan.local...[/email]
> Amigos, estoy tratandode hacer un sistema para checar horas y salidas de
> empleados.
>
> Estoy tratando de trabajar con DATETIME().
>
> Mi pregunta. ¿ Como puedo obtener el Total de minutos entre dos
> DateTime()?
>
> Ejemplo:
>
> Entrada1=Datetime() /// Esta es mi variable en la que guardo el primer
> DATETIME()
> Luego dejo pasar 10 minutos y obtengo mi segundo DATETIME()
>
> Logicamente deberia ser asi
> Resultado=Salida1-Entrada1 // Aqui me daria los segundos para que lo pueda
> convertir despues, pero no lo hace
>
> Espero haberme explicado.
>
> De antemano mil gracias
>
>
>
>
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

COMO OBTENER MINUTOS

Mensaje por Rolando »

Hermoso ejemplo, gracias.
El link es http://objetopersistente.blogspot.com/
Saludos desde Argentina
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:47b4466e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Pedro,
>
> En principio restándolos.
>
> Del Blog de René http://objetoperistente.blogsport.com
>
> ** Operaciones con DateTime
>
> ? d1 := {^ 2007/04/26 18:30:00 } //devuelve: 04/26/2007 18:30:00.000 ? d2
> := StoD("20070426") // devuelve: 04/26/2007
> ? nDiff := d1-d2, "dias" // devuelve: 0.77 días
> ? TString( nDiff*86400 ) // devuelve: 18:30:00
>
> ** Añadiendo 2 dias a un DateTime
> ? d1 + 2 // devuelve: 04/28/2007 18:30:00.000
>
> ** Añadiendo 2 horas a un DateTime
> ? d1 + 2/24 // devuelve: 04/26/2007 20:30:00.000
>
> ** Añadiendo 2 minutos a un DateTime
> ? d1 + 2/(24*60) // devuelve: 04/26/2007 18:32:00.000
>
> ** Añadiendo 2 segundos a un DateTime
> ? d1 + 2/(24*3600) // devuelve: 04/26/2007 18:30:02.000
>
> Saludos,
>
> "PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje
> news:[email=47b3f523@ozsrv2.ozlan.local...]47b3f523@ozsrv2.ozlan.local...[/email]
>> Amigos, estoy tratandode hacer un sistema para checar horas y salidas de
>> empleados.
>>
>> Estoy tratando de trabajar con DATETIME().
>>
>> Mi pregunta. ¿ Como puedo obtener el Total de minutos entre dos
>> DateTime()?
>>
>> Ejemplo:
>>
>> Entrada1=Datetime() /// Esta es mi variable en la que guardo el primer
>> DATETIME()
>> Luego dejo pasar 10 minutos y obtengo mi segundo DATETIME()
>>
>> Logicamente deberia ser asi
>> Resultado=Salida1-Entrada1 // Aqui me daria los segundos para que lo
>> pueda convertir despues, pero no lo hace
>>
>> Espero haberme explicado.
>>
>> De antemano mil gracias
>>
>>
>>
>>
>>
>>
>
>
Responder