Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pasar de segundos a horas

Estas en el tema de Pasar de segundos a horas en el foro de Visual Basic clásico en Foros del Web. Ejemplo Si pongo 120 segundos que devuelva... 00:02:00 Si pongo 125 segundos que devuelva... 00:02:05 Si pongo 3730 segundos que devuelva... 01:02:10 Y asi......
  #1 (permalink)  
Antiguo 30/03/2006, 13:22
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 4 meses
Puntos: 19
Pasar de segundos a horas

Ejemplo

Si pongo 120 segundos que devuelva...

00:02:00

Si pongo 125 segundos que devuelva...
00:02:05

Si pongo 3730 segundos que devuelva...
01:02:10

Y asi...
  #2 (permalink)  
Antiguo 30/03/2006, 13:41
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 4 meses
Puntos: 19
Me autorespondo...

Estuve probando.. y saque esto...

Código:
Dim t0 As Variant, t1 As Variant
Dim X As Integer

For X = 1 To Text1
    t0 = Format("00:00:01", "hh:mm:ss")
    t1 = Format(Text2, "hh:mm:ss")
    Text2.Text = Format(TimeValue(t1) + TimeValue(t0), "hh:mm:ss")
    Label1 = Format(TimeValue(t1) + TimeValue(t0), "hh:mm:ss")
Next X
Funciona para lo que quiero...

Pero si alguien tiene algo mas rentable.. se agradece...

PD: Paso a explicar para el que le interesa...
Text1, tiene la cantidad de segundos...
Text2, tiene 00:00:00
Lo que va haciendo por cada segundo del Text1, le suma al Text2 + 00:00:01...

No se si explique bien

--------------------------------------------------------
EDITO:

Ahora hise una funcion que devuelve un String con el resultado HORAS:MINUTOS:SEGUNDOS
Solo hay que mandarle la cantidad de segundos, y devuelve el resultado.

Código:
Public Function SumarTiempo(Segundos As Integer) As String
Dim A As Variant, B As Variant
Dim X As Integer
Dim T As String

T = "00:00:00" 'Lo inicializamos en 0 horas, 0 minutos, 0 segundos
A = Format("00:00:01", "hh:mm:ss") 'guardamos en una variable el formato de 1 segundos

For X = 1 To Segundos 'hacemos segundo a segundo
    B = Format(T, "hh:mm:ss") 'En B guardamos un formato de hora:minuto:segundo segun lo que tenia T
    T = Format(TimeValue(A) + TimeValue(B), "hh:mm:ss") 'asignamos a T la suma de A + B (osea, sumamos logicamente 1 segundo)
Next X

SumarTiempo = T 'a la funcion le damos el valor que hallamos en T
End Function
Sigo insistiendo. Si alguien tiene algo mas rapido y versatil, por favor pongalo.

Última edición por culd; 30/03/2006 a las 13:53
  #3 (permalink)  
Antiguo 30/03/2006, 16:11
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 3 meses
Puntos: 53
en las faq's hay un ejemplo lo deberías revisar...

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #4 (permalink)  
Antiguo 31/03/2006, 01:26
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años
Puntos: 3
Cada vez que me encuentro con una respuesta tuya dice:
Cita:
Iniciado por GeoAvila
en las faq's hay un ejemplo lo deberías revisar...
nos vemos..
jajajaja que malo Por lo menos deja un link o una pista para saber con que titulo buscarlo en las FAQ'S
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #5 (permalink)  
Antiguo 31/03/2006, 08:11
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 3 meses
Puntos: 53
m... ok aqui esta no llorés jajajaja

http://www.forosdelweb.com/showpost....6&postcount=35

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #6 (permalink)  
Antiguo 31/03/2006, 20:10
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años
Puntos: 1
Yo uso este codigo en algunos programas donde trabajo los tiempos en segundos:
Código:
Option Explicit

 Private Sub Form_Load()
Dim Horas As Long, Minutos As Long, Segundos As Long

Call Get_Time(9325, Horas, Minutos, Segundos)

MsgBox Format(Horas, "00") & ":" & Format(Minutos, "00") & ":" & Format(Segundos, "00")

 End Sub

 'Devuelve el tiempo en Horas, Minutos y Segundos:
 Private Sub Get_Time(TimeInSeconds As Long, Hours As Long, Minutes As Long, Seconds As Long)
 Dim Sec As Long, Min As Long, Hour As Long

Sec = TimeInSeconds

Do While Sec >= 60
    Sec = Sec - 60
    Min = Min + 1
Loop

Do While Min >= 60
    Min = Min - 60
    Hour = Hour + 1
Loop

Hours = Hour
Minutes = Min
Seconds = Sec

 End Sub 
Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #7 (permalink)  
Antiguo 01/04/2006, 20:39
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años
Puntos: 3
jajajaja Gracias por el link GeoAvila
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #8 (permalink)  
Antiguo 03/04/2006, 03:24
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 3 meses
Puntos: 7
Cita:
Y asi...
...¿hasta qué número? Si el límite no pasa del rango de un Integer, para eso tienes la función TimeSerial.
Código:
TimeSerial(0,0 , 32767)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:30.