Como usar el TimeSpan?… ejemplo práctico con un Cronómetro…

Hummm…


El otro día jugando con un Cubo Rubik me quise tomar el tiempo de cuanto me demoraba, para esto solía usar el cronómetro del celular… jejeje… pero en un momento quise tener uno en mi portatil… encontré en internet unos instaladores, pero me propuse hacer uno yo mismo… jejeje nada del otro mundo.


Lo primero fue como sumar y restar Horas… para eso encontré el tipo de datos TimeSpan que me sirvió notablemente para esto.


Puedes descargar el ejemplo completo desde aqui —>> Download   CLAVE ZIP: msmvps.com/jvargas


Para comenzar cree un formulario windows con un label, dos botones y un control timer.


El formulario es el siguiente:



El label se llama lblTiempo, el boton “>” se llama btnIniciarPausar, el botón “O” se llama btnDetener y el timer se llama tmrTiempo.


Ahi les adjunto los eventos correspondientes..

    Dim FechaInicio As DateTime, _
        TiempoActivo As TimeSpan

    Private Sub btnIniciarPausar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIniciarPausar.Click

        If btnIniciarPausar.Text = “||” Then
            ‘PAUSA
            btnIniciarPausar.Text = “>”
            tmrTiempo.Stop()
        Else
            ‘REINICIAR
            Dim FechaActiva As DateTime
            FechaActiva = lblTiempo.Text
            TiempoActivo = FechaActiva.TimeOfDay

            FechaInicio = Now
            btnDetener.Enabled = True
            btnIniciarPausar.Text = “||”
            tmrTiempo.Start()
        End If

    End Sub

    Private Sub btnDetener_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDetener.Click
        btnDetener.Enabled = False
        btnIniciarPausar.Text = “>”
        lblTiempo.Text = “00:00:00.000″
        tmrTiempo.Stop()
    End Sub

    Private Sub tmrTiempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrTiempo.Tick

        Dim Tiempo As TimeSpan

        Tiempo = Now.Subtract(FechaInicio).Duration
        Tiempo += TiempoActivo

        lblTiempo.Text = Microsoft.VisualBasic.Right(“00″ & Tiempo.Hours, 2) & “:” & _
                         Microsoft.VisualBasic.Right(“00″ & Tiempo.Minutes, 2) & “:” & _
                         Microsoft.VisualBasic.Right(“00″ & Tiempo.Seconds, 2) & “.” & _
                         Microsoft.VisualBasic.Right(“000″ & Tiempo.Milliseconds, 3)

        Me.Refresh()

    End Sub


Espero les sirva este ejemplo en el uso de TimeSpan al igual que Datetime.

Saludos,

Jhonny Vargas P.

5 thoughts on “Como usar el TimeSpan?… ejemplo práctico con un Cronómetro…”

  1. Esque me dejaron de tarea para hacer una validacion de cuenta de usuaio con un maximo de tiempo de 15 segundos para q ingrese usuario y contraseña y despues de este tiempo cerrar la aplicacion con un Application.Exit(); jeje q les digo si eso ya es obvio jaj ojala q me ayuden

  2. Felicitaciones y te pido orientacion: Quisiera este cronometro para insertar en una pagina web para tomar el tiempo de dos vueltas de kartings. Es decir partiendo de 0 y tomar hasta en milisec la 1º vuelta. Al detener el cronometro para tomar el timepo de la 1º vuelta iniciar desde 0 el tiempo de la 2º vuelta. Al detener el cronometro mostrar los dos tiempos en minutos, segundos y milisegundos. ademas del tiempo total sumando ambas vueltas. Me explique? Muchas gracias por el consejo de antemano. WALTER – TARTAGAL – SALTA

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>