cómo se convierten decimales en minutos

480 views
Skip to first unread message

murquijo

unread,
Feb 2, 2011, 5:30:18 PM2/2/11
to Comunidad de Visual Foxpro en Español
Hola tod@s
Cómo puedo convertir un número decimal en horas y minutos?
ejemplos;
6.5 es 6.30
7.2 es 7.12
etc.
Mil gracias
Mauricio

Victor Espina

unread,
Feb 2, 2011, 5:35:43 PM2/2/11
to Comunidad de Visual Foxpro en Español
Una simple regla de 3

Si 100 = 60
Entonces x = y

siendo x la fraccion del numero decimal. En VFP seria:

nDec = nHora - INT(nHora)
nSeg = (nDec * 60) / 100
nHora = INT(nHora) + (nSeg / 100)

Saludos

Victor Espina

murquijo

unread,
Feb 2, 2011, 5:48:09 PM2/2/11
to Comunidad de Visual Foxpro en Español
Hola Victor. Gracias pero debes tener algún error porquecon esta
función 4.5 devuelve 4.003. Estaré usándola mal?

Victor Espina

unread,
Feb 2, 2011, 5:56:19 PM2/2/11
to Comunidad de Visual Foxpro en Español
Si, tienes razon. La formula correcta es:

nDec = nHora - INT(nHora)
nSeg = (nDec * 60) / 100
nHora = INT(nHora) + nSeg

La division por 100 no era necesaria.

Saludos

Victor Espina

Luis Maria Guayan

unread,
Feb 2, 2011, 5:56:25 PM2/2/11
to publice...@googlegroups.com
Mira si esto te sirve

? HORA(4.5)

FUNCTION Hora(tn)
  lnHora = INT(tn)
  lnMin = INT((tn - lnHora) * 60)
RETURN TRANSFORM(lnHora)+ ":" + TRANSFORM(lnMin, "@L 99")

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

murquijo

unread,
Feb 3, 2011, 9:02:23 AM2/3/11
to Comunidad de Visual Foxpro en Español
Funcionó perfecto. Muchísimas gracias.
Mauricio

On 2 feb, 17:56, Luis Maria Guayan <luisma...@portalfox.com> wrote:
> Mira si esto te sirve
> ? HORA(4.5)
> FUNCTION Hora(tn)
>   lnHora = INT(tn)
>   lnMin = INT((tn - lnHora) * 60)
> RETURN TRANSFORM(lnHora)+ ":" + TRANSFORM(lnMin, "@L 99")
>
> Luis María Guayán
> Tucumán, Argentina
> _________________________http://www.PortalFox.com

Roxana

unread,
May 5, 2017, 2:34:14 PM5/5/17
to Comunidad de Visual Foxpro en Español
Hola! Como estan?
Necesito que devuelva tambien los segundos. Como puedo hacer??
GRacias!

Saludos,

Víctor Hugo Espínola Domínguez

unread,
May 5, 2017, 3:30:39 PM5/5/17
to publice...@googlegroups.com
Function HHdd2HMS(tnHHdd As Number) As String

Local lcHHMMSS As String,  ;
    lnDd As Number,           ;
    lnHH As Number,           ;
    lnMM As Number,           ;
    lnSS As Number

lnHH = Int(m.tnHHdd)
lnDd = m.tnHHdd - m.lnHH
lnMM = Int(m.lnDd * 60)
lnSS = (m.lnDd * 60 - Int(m.lnDd * 60)) * 60

lcHHMMSS = Transform(m.lnHH) + ":" + Transform(m.lnMM, "@L 99") + ":" + Transform(m.lnSS, "@L 99.99")
lcHHMMSS = Iif(At(":", m.lcHHMMSS) = 2, "0" + m.lcHHMMSS, m.lcHHMMSS)

Return m.lcHHMMSS


Saludos,
Víctor.
Lambaré - Paraguay.

Roxana Demattei

unread,
May 10, 2017, 7:17:40 AM5/10/17
to publice...@googlegroups.com

Gracias por responder!

Funciona perfecto!

 

Saludos,

 

Ing. Roxana Demattei


Libre de virus. www.avast.com
Reply all
Reply to author
Forward
0 new messages