Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

Borrar este aviso
El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Duda con manejo de horas
#1

Hola a todos.

Vamos a suponer que tengo el siguiente código:

GAMBAS
  1.  
  2. a = DateDiff(Date(0, 0, 0, 11, 00), Date(0, 0, 0, 12, 30), gb.Minute)



Esto funciona perfectamente, imprimiendo 90 minutos. Mi pregunta es, ¿se puede usar Format$() para pasar esos 90 minutos a "1:30"? Y si es así, ¿cómo se hace? ¿O por el contrario tengo que hacerme una función que haga ese trabajo?

Muchas gracias.
#2

(07-11-2020, 17:43)guizans escribió:  se puede usar Format$() para pasar esos 90 minutos a "1:30"?

Hola Guinzas, si se puede.
Creo que esto te servirá.
'' Returns the time in a matrix where: 0-Y 1-M 2-D 3-H 4-N 5-S and as an input parameter requires the time in seconds

GAMBAS
  1. Public Function SecondsToHMS(intTime As Integer) As Integer[]
  2.  
  3.   Dim intH As Integer ' Horas
  4.   Dim intN As Integer ' Minutos
  5.   Dim intS As Integer ' Segundos
  6.   Dim stxTime As New String[]
  7.  
  8.   Select intTime / 3600
  9.     Case 0
  10.       intH = 0
  11.     Case 1
  12.       intH = 1
  13.       intN = 0
  14.     Case Else
  15.       intH = intTime / 3600
  16.       Select (intTime Mod 3600) Mod 60
  17.         Case 0
  18.           intN = (intTime Mod 3600) / 60
  19.           intS = 0
  20.         Case Else
  21.           intN = (intTime Mod 3600) / 60
  22.           intS = (intTime Mod 3600) Mod 60
  23.       End Select
  24.   stxTime.Add(intH)
  25.   stxTime.Add(intN)
  26.   stxTime.Add(intS)
  27.   Return stxTime


Saludos
#3

Gracias tincho, me servirá Wink
#4

(07-11-2020, 19:18)guizans escribió:  Gracias tincho, me servirá

Me quede dandole veueltas al tema. A parecer no hat una forma de pasarle a format directamente los 90 miutos pero...
GAMBAS
  1. a = DateDiff(Date(0, 0, 0, 11, 00), Date(0, 0, 0, 12, 30), gb.Minute)
  2. Print Format(Time(CInt(a / 60), a Mod 60, 0, 0), "hh:nn")


Eso si que devuelve 1:30
Saludos.
#5

Intentando condensar el buen consejo de tincho:

GAMBAS
  1. Public Sub Main()
  2.  
  3.  
  4.   i = DateDiff(Date(0, 0, 0, 11, 00), Date(0, 0, 0, 12, 30), gb.Minute)
  5.  
  6.   Print Format(Time(0, 0, 0, i * 60000)
  7.  



"Los horizontes perdidos nunca regresan. " (F. Battiato)
#6

Gracias a todos por vuestra ayuda.

El código de vuott me gusta mucho, es el más reducido y el más fácil de entender, pero lo he mejorado para que de un resultado mas a mi gusto Big Grin

GAMBAS
  1. Print Format(Time(0, 0, 0, i * 60000), "hh:nn")



Un saludo.
#7

(08-11-2020, 12:48)guizans escribió:  pero lo he mejorado

Sì, perdona, pegando mi código, yo Confused olvidé el segundo parametro de la función "Fomat()" !

Sì, la linea correcta es: Format(Time(0, 0, 0, i * 60000), "hh:nn")

"Los horizontes perdidos nunca regresan. " (F. Battiato)


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)