Segundos en horas, minutos y segundos en Visual Basic 6 (vb6)
Bienvenidos a VerTutoriales.com, en esta ocasión vamos a ver una función a la que se le pasan segundos y lo convierte en un formato de horas, minutos y segundos.
La operación veremos que es muy sencilla y utilizaremos la función mod() que nos devuelve el resto de un número, de esta manera podremos seguir desglosando tanto como queramos, en nuestro caso, en horas, minutos y segundos.
Veamos la función y pasamos más adelante a explicarla:
Function FormatoMinutos(segundos) As String
Dim aHoras As Integer
Dim aMinutos As Integer
Dim aSegundos As Integer
aHoras = segundos / 3600
aMinutos = (segundos Mod 3600) / 60
aSegundos = ((segundos Mod 3600) Mod 60)
FormatoMinutos = Right$(“0” & aHoras, 2) & “:” & Right$(“0” & aMinutos, 2) & “:” & Right$(“0” & aSegundos, 2) EndFunction
Como podéis ver, la función recibe un parámetro segundos, que es el total de segundos que queremos desglosar en horas y minutos, a continuación simplemente dividimos los segundos en 3600 (que son los segundos de una hora) de esta manera obtenemos las horas, más adelante tomamos el resto de 3600 y partimos denuevo en 60, para conseguir los minutos, y una tercera vez, para conseguir los segundos restantes.
Luego simplemente le damos formato, yo he optado por dar formato “00:00:00” aunque podéis poner el que queráis, es más podéis utilizar la función format() para designar un formato y que os lo devuelva en formato date/time.
Espero que os sirva!
Un saludo!
Comments
Nos nos sirvio de nada… deberian tomar en cuenta el programa Visual Studio 2010 C++
Siento que no os diera una solución, aunque con unos mínimos conocimientos de programación no resultaría difícil pasarlo a .net o cualquier otro lenguaje.
Es solo un par de operaciones y una concatenación 🙂
Cuando tengo una hora con variación en segundos calcula mal los minutos es decir 09:03:20 a.m. y 09:03:53 a.m. tiene una variación de 33 segundos, la función arroja 00:01:33, qué está mal??
¿Qué valor le estás pasando? La función recibe segundos y devuelve el string montado en ese formato. Si te devuelve 1:33 es por que realmente hay 93 segundos, o así entiendo.
Un saludo!
Creo que no es del todo correcta, prueba con esta corrección:
‘Convertir segundos a minutos
Function secondsToMinutes(segundos) As String
Dim aHoras As Integer
Dim aMinutos As Integer
Dim aSegundos As Integer
aHoras = Int(segundos / 3600)
aMinutos = Int((segundos – aHoHoras * 3600) / 60)
aSegundos = (segundos – aHoHoras * 3600) Mod 60
secondsToMinutes = Right$(“0” & aHoras, 2) & “:” & Right$(“0” & aMinutos, 2) & “:” & Right$(“0” & aSegundos, 2)
End Function
Gracias por el aporte, pero creo que está errada la variable aHoHoras no está en ningún sitio no? 🙂
De todas maneras el que venga y copie que pruebe.
Gracias!