Visual Basic - Código Conversión del Tiempo

Life is soft - evento anual de software empresarial
 
Vista:

Código Conversión del Tiempo

Publicado por Espaguetti (2 intervenciones) el 16/02/2009 18:49:56
Hola a todos, estaba presumiendo mi programita cuando detecté lo siguiente:

Dim Horas As Integer
Dim Minutos As Integer
Dim Segundos As Integer

Horas = Val (Text1.Text) / 3600
Minutos = Val(Text1.Text Mod 3600) / 60
Segundos = Val ((Text1.Text Mod 3600) mod 60)

Un día equivale a 86400 segundos. Pero si yo deseo calcular 85960 (que es un número menor a 86400) me arroja un resultado de: 24 hrs., 53 min., 40 seg. Resultando ilógico que 85960, que es menor a 24 horas, resulte de más de 24 horas.

Ahora, modifiqué con diagonales invertidas para que calcule sólo enteros:

Dim Horas As Integer
Dim Minutos As Integer
Dim Segundos As Integer

Horas = Val (Text1.Text) 3600
Minutos = Val(Text1.Text Mod 3600) 60
Segundos = Val ((Text1.Text Mod 3600) mod 60)

Pero de igual forma sobrepasa la lógica.

Si alguién pudiera darme el código perfecto para esto (la verdad es que mi nivel de VB es super novato), talvez con una explicación con manzanas, se los agradeceré.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Código Conversión del Tiempo

Publicado por Quique (51 intervenciones) el 16/02/2009 23:52:27
Lo que sucede que es usas variables del tipo integer (ENTERO), por eso al dividir 85960 / 3600 te da un valor de 24, POR EFECTOS DEL REDONDEO.
Utiliza mejor variables de tipo Single, para que te acepten decimales, y después tomas, ahora sí la parte entera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar