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)    End

Function

 

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 (6)

  • TEZUDA 22 abril, 2013

    Nos nos sirvio de nada… deberian tomar en cuenta el programa Visual Studio 2010 C++

    Reply
    • VideoTutoriales 23 abril, 2013

      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 🙂

      Reply
  • AlexO 25 mayo, 2016

    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??

    Reply
    • Carlos Dk 25 mayo, 2016

      ¿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!

      Reply
  • Jose Luis 20 enero, 2022

    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

    Reply
    • Carlos Dk 12 abril, 2022

      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!

      Reply

Leave a comment

Sign in to post your comment or sine up if you dont have any account.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tu software de gestión


Últimas preguntas:

Logo Dkreativo
Vertutoriales