Hola a todos.
Vamos a suponer que tengo el siguiente código:
Código:
Dim a As Integer
a = DateDiff(Date(0, 0, 0, 11, 00), Date(0, 0, 0, 12, 30), gb.Minute)
Print a
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.
(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
Código:
Public Function SecondsToHMS(intTime As Integer) As Integer[]
Dim intH As Integer ' Horas
Dim intN As Integer ' Minutos
Dim intS As Integer ' Segundos
Dim stxTime As New String[]
Select intTime / 3600
Case 0
intH = 0
Case 1
intH = 1
intN = 0
Case Else
intH = intTime / 3600
Select (intTime Mod 3600) Mod 60
Case 0
intN = (intTime Mod 3600) / 60
intS = 0
Case Else
intN = (intTime Mod 3600) / 60
intS = (intTime Mod 3600) Mod 60
End Select
End Select
stxTime.Add(intH)
stxTime.Add(intN)
stxTime.Add(intS)
Return stxTime
End
Saludos
Gracias tincho, me servirá

(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...
Código:
a = DateDiff(Date(0, 0, 0, 11, 00), Date(0, 0, 0, 12, 30), gb.Minute)
Print Format(Time(CInt(a / 60), a Mod 60, 0, 0), "hh:nn")
Eso si que devuelve 1:30
Saludos.
Intentando
condensar el buen consejo de tincho:
Código:
Public Sub Main()
Dim i As Integer
i = DateDiff(Date(0, 0, 0, 11, 00), Date(0, 0, 0, 12, 30), gb.Minute)
Print Format(Time(0, 0, 0, i * 60000)
End
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
[code]
Un saludo.
(08-11-2020, 12:48)guizans escribió: [ -> ]pero lo he mejorado
Sì, perdona, pegando mi código, yo

olvidé el segundo parametro de la función "Fomat()" !
Sì, la linea correcta es:
Format(Time(0, 0, 0, i * 60000), "hh:nn")