Leer un número entero e imprimirlo como hora en am y pm: SOLUCIONADO

En el mundo de la programación, es común tener que enfrentarse a problemas que pueden parecer complicados al principio, pero con las herramientas adecuadas y un poco de experiencia, pueden resolverse de manera fácil y rápida. Hoy nos vamos a enfocar en una solicitud bastante frecuente: convertir un número entero a formato de hora en am y pm usando Visual Basic.

Muchos sistemas requieren esta funcionalidad, para convertir una entrada de dato numérico, a una salida en formato de hora am o pm. Visual Basic, como lenguaje de programación, ofrece una variedad de funcionalidades que facilitan el manejo y manipulación de datos, incluyendo los formatos de tiempo.

Entendiendo Visual Basic y el manejo de tiempo

Antes de sumergirnos en cómo resolver el desafío, primero, es útil comprender cómo Visual Basic maneja el tiempo. Visual Basic usa un formato de 24 horas por defecto para su tipo de datos de tiempo, lo cual significa que podemos representar cualquier momento del día desde las 00:00 (medianoche) hasta las 23:59 (un minuto antes de la medianoche del día siguiente).

En este artículo, mostraremos cómo puedes usar solo VB.NET, una versión moderna de Visual Basic, para convertir un número entero a formato de hora en AM o PM.

Un enfoque directo de conversión de número a tiempo

Ahora, vamos a presentar una manera de convertir un número entero a formato de hora AM o PM en Visual Basic.

        Dim i As Integer = input
        Dim ts As TimeSpan = TimeSpan.FromHours(i)
        Dim dt As DateTime = DateTime.Today.Add(ts)
        Dim tiempo As String = dt.ToString("hh:mm tt")
    

Este es un enfoque simplificado que es útil cuando sabes que la entrada siempre será un número entero representando una hora válida en un formato de 24 horas. Recoge el entero como una entrada de datos, lo convierte en un objeto TimeSpan, luego suma ese TimeSpan a la medianoche del día actual para obtener un objeto DateTime. Finalmente, convierte ese DateTime a una cadena de caracteres en el formato deseado.

Manejo de errores al convertir números a tiempo

El enfoque anterior es simple y directo, pero no es infalible. ¿Qué sucede si recibes un número entero que no corresponde a una hora válida en formato de 24 horas? En tal caso, nuestro código anterior arrojará un error. Por eso es importante agregar un manejo de errores.

      Dim i As Integer = input
      If i >=0 AndAlso i<=24 Then
          Dim ts As TimeSpan = TimeSpan.FromHours(i)
          Dim dt As DateTime = DateTime.Today.Add(ts)
          Dim tiempo As String = dt.ToString("hh:mm tt")
      else
          MsgBox("Hora inválida. Ingrese un número entre 0 y 24")
      End If 
    

Con este código, si la entrada no es válida, el usuario recibe un mensaje de error que le pide que introduzca un número entre 0 y 24.

Conversión de un número absoluto a un formato de hora

Visual Basic ofrece un método aún más sencillo para convertir un número absoluto a un formato de hora usando la función TimeSerial. Esta función toma tres argumentos: horas, minutos y segundos, y devuelve un valor de tiempo válido basado en esos argumentos.

      Dim i As Integer = input
      Dim tiempo As String = TimeSerial(i, 0, 0).ToString("hh:mm tt")
    

Con esto, logramos de forma sencilla y con pocas líneas de código, convertir un número entero a un formato de hora AM or PM utilizando Visual Basic. Esto es una muestra de lo potente que puede ser este lenguaje de programación con las funciones adecuadas.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad