locked
Aproximar minutos RRS feed

  • Pregunta

  • tengo un programa que calcula cuantos minutos hay entre una hora inicial y una hora final, deseo aproximar los minutos, como lo hago?

    por ejemplo:  si mi resultado son 9 minutos aproximar a 15 si mi resultado es 31 minutos aproximar a 45, etc...

    lunes, 4 de octubre de 2010 23:03

Respuestas

  • hola

    podrias usar el IF, o sino tambien un SELECT CASE

    Dim resultado As Integer

    Select Case minutos

       Case Is < 15

            resultado = 15

       Case Is < 30

            resultado = 30

       Case Is < 45

           resultado = 45

       Case Else

           resultado = 60

    End Select

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 5 de octubre de 2010 0:01

Todas las respuestas

  • hola

    podrias usar el IF, o sino tambien un SELECT CASE

    Dim resultado As Integer

    Select Case minutos

       Case Is < 15

            resultado = 15

       Case Is < 30

            resultado = 30

       Case Is < 45

           resultado = 45

       Case Else

           resultado = 60

    End Select

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 5 de octubre de 2010 0:01
  • recomiendo mejor el select por que asi evitas procedimientos por lineas, debo imaginar que deseas calcular inervalos de minutos con horas, el de hora ya lo as de tener solo te falta acomodar los redondeos de minutos a los itervalos 01 a 15, 16 a 30, 31 a 45, 46 a una hora. tipo contador de tiempo de uso.

    suponiendo que ya tienes el de horas, lo guardas a una variable en este ejemplo lo llamaremos: horas_transcurridas.

    Dim minutos_sobrantes as Integer    ' si tu resultado te da solo lo minutos lo pasamos a una variable a verficar

    Dim hora_completa as Integer   ' nos servira para en caso de ser arriba de 45 este se ejecute y se sume a tus horas transcurridas, por defecto valdra CERO siempre q lo pondremos al inicio del procedimiento

    Private Sub Calculo_de_Tiempo ()

    minutos_sobrantes= resultado 

    hora_completa=0

    Select Case minutos_sobrantes

    Case Is < 16

    resultado= 16  'asignamos el nuevo valor a resultado

    Case Is < 31

    resultado =30

    Case Is < 46

    resultado= 45

    Case Is <=60

    hora_completa=1

    End Select

    horas_transcurridas = horas_transcurridas + hora_completa          'tener en cuenta q horas:_transcurridas tomara siempre un nuevo valor en tu calculo donde obtienes horas y minutos.

    msgbox ("tiempo transcurrido: " & horas_transcurridas & " horas con " & resultado & " minutos")  ' esto es para verificar q todo a salido bien.

    End Sub


    Saludos,
    Recuerda que si las respuestas te ayudan a resolver tus problemas no olvides marcarla como respuesta, ya que otros usuarios pueden tener el mismo problema.
    J. Miguel
    martes, 5 de octubre de 2010 5:04
  • Hola:

    Prueba esta función a ver si te sirve:

    Function Redondear(Numero AS Integer, CadaCuantos AS Integer, Optional NumeroInicial AS Integer = 0) AS Integer

       Return ((Numero + NumeroInicial - 1) \ CadaCuantos + 1) * CadaCuantos

    End Function

    Y para que te de el resultado:

    Msgbox Redondear(9, 15)

    Msgbox Redondear(31, 15)

    Saludos

     

    • Propuesto como respuesta Focus Media jueves, 14 de octubre de 2010 9:20
    martes, 5 de octubre de 2010 10:06