Reloj Digital (Timer)

Quiero mostrarles hoy una forma simple y sencilla de crear en visual basic .net un reloj digital. Lo haremos utilizando un label y un componente Timer.

El formulario debería tener una apariencia similar a la de la siguiente imagen>

Para este ejemplo donde solo mostraremos la hora, cambiaremos la fuente del control label para darle más importancia. Yo estoy usando fuente Tahoma tamaño 28.

Ahora veamos las propiedades del componente timer. Para que se ejecute el codigo del evento Tick del componente timer, este tiene que tener la propiedad enable en True. Y el codigo que ingresemos se va a ejecutar cada n ticks. La cantidad de ticks de n se las indicamos con la propiedad interval en milisegundo. Por lo tanto si colocamos dicha propiedad en 1000 ticks, el código se ejecutará cada 1 segundo.

Ahora veamos el código, es muy sencillo:

Private Sub Timer1_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = Date.Now.ToLongTimeString
End Sub

Solo resta ejecutar (F5) la aplicación y tendremos nuestro reloj digital como se muestra en la siguiente imagen>

Si eres asiduo lector de este blog, sabrás que todo el código de los ejemplos siempre pretende ser muy sencillo y que tu tienes a partir de estos ejemplos la posibilidad de mejorarlo, complementarlos y adaptarlos para usarlos en tus aplicaciones.

Como siempre, espero que te sea útil.



15 Responses to “Reloj Digital (Timer)”

  1. Información Bitacoras.com…

    Valora en Bitacoras.com: Quiero mostrarles hoy una forma simple y sencilla de crear en visual basic .net un reloj digital. Lo haremos utilizando un label y un componente Timer. El formulario debería tener una apariencia similar a la de la siguiente i….

  2. fastmonro dice:

    el timer no es necesario, una forma mas sencilla:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Me.Label1.Text = Format(Now, “hh:mm:ss tt”)
    End Sub

    • Eliseo dice:

      fastmonro:

      gracias por el aporte, pero lo único que haces con eso es “mostrar” en una etiqueta la hora en que se cargó el formulario (ya que lo llamas desde el evento Load). Permiteme decirte que para lograr la funcionalidad de un reloj, o sea, que muestre la hora actual “todo el tiempo” es necesario el componente Timer, sino no sería un reloj… solo mostrarías la hora de un momento determinado.

  3. Alex dice:

    Muy bueno su aporte!!! Felicidades!!

  4. Laharl dice:

    excelente aporte hermano pero el unico problema que le encuentro es que no carga al mismo tiempo que lo ejecuta uno hay que esperar cierto tiempo para que muestre el reloj solo hay que poner lo mismo en el evento load del form yo lo hice en C# por que es el que mas puedo utilizar
    private void timer1_Tick(object sender, EventArgs e)
    {
    label.Text = DateTime.Now.ToShortTimeString();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    label.Text = DateTime.Now.ToShortTimeString();
    }
    y una cosa mas alguien sabe como mostrar el nombre del archivo guardado o abierto en la barra de titulo e intentado de varias maneras y no encuentro como hacerlo no importa si es en VB o C#.

    salu2

    • tienes razon pero es por qu etienes que esperar un segundo que es cuando se ejecuta el codigo tic del reloj (recuerda es cada 1 segundo es decir un segundo despues del load) te digo un truco mucho mas sencillo para qu eno te hagas bolas, pon el mismo codigo que pones en el tic del reloj en el form load de tu formulario asi:

      private sub form1_load ….

      Me.Label12.Text = Format(Now, “hh:mm:ss tt”)
      end sub

      y se acabo tu dilema

      Saludos

  5. juan dice:

    eliseo….que bien gracias por ayudarnos con estos codigos sencillos y la buena explicacion a nosotros los que apenas empezamos con lo de programar…….tenes razon con el timer es muy necesario para que se actualize..

    Gracias.

  6. henoch dice:

    Buena me gusto la solución

  7. danilo dice:

    amigos no miro el codigo para el tick del timer?? ayudenme por favor

  8. Neobones dice:

    Hola, yo use el Timer y como dice arriba, en la propiedad Enable tiene q ir en True, y el intervale = 1000….ahora…hacen doble click en el objeto Timer1 y les llevara al evento Tick…dentro ponen el codigo algo asi…

    Public Class frmPrincipal
    Private Sub Tiempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tiempo.Tick
    txtHora.Text = Format(Now, “hh:mm:ss tt”)
    txtFecha.Text = Date.Now.Date
    End Sub
    End Class

    en mi caso io le cambie el nombre del objeto, en ves de Timer1 le puse Tiempo…
    espero q les ayude a los nuevos programadores.

  9. AlvaroPucela dice:

    Neobones tu función es cojonuda! va de puta madre.

  10. Callejero dice:

    Buenas amigos, he intentado varias veces como me dicen pero al correr el programa el reloj no se va actualizando cada segundo, que debo hacer para que en corrida se vaya actualizando, ya la propiedad de interval la coloque en 1000, sin embargo no se actualiza.
    espero me pueda ayudar.
    saludos.

    • aunque no lo mencionas supongo que por logica habras escrito el codigo para el evento tic del reloj? que es este

      Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      Label12.Text = Format(Now, “hh:mm:ss tt”)
      End Sub

  11. FREDY dice:

    SISAS TA BN EL CODIGO Y YOP APENAS TOY APRENDIENDO Y NA.. QUISIERA SABER COMO ASERLE PARA CREAR UN CRONOMETRO SISAS…

Comentar