<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Jhonny Vargas P.  : TimeSpan</title><link>http://msmvps.com/blogs/jvargas/archive/tags/TimeSpan/default.aspx</link><description>Tags: TimeSpan</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Como usar el TimeSpan?... ejemplo práctico con un Cronómetro...</title><link>http://msmvps.com/blogs/jvargas/archive/2007/12/31/timespan_5F00_Cronometro.aspx</link><pubDate>Mon, 31 Dec 2007 15:48:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1429338</guid><dc:creator>jvargas</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/jvargas/rsscomments.aspx?PostID=1429338</wfw:commentRss><comments>http://msmvps.com/blogs/jvargas/archive/2007/12/31/timespan_5F00_Cronometro.aspx#comments</comments><description>&lt;p&gt;Hummm...&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Lo primero fue como sumar y restar Horas... para eso encontré el tipo de datos TimeSpan que me sirvió notablemente para esto.&lt;/p&gt;
&lt;p&gt;Puedes descargar el ejemplo completo desde aqui ---&amp;gt;&amp;gt; &lt;a class="" title="Download Cronometro" href="http://rapidshare.de/files/38173740/Cronometro.zip.html" target="_blank"&gt;Download&lt;/a&gt;&amp;nbsp;&amp;nbsp; CLAVE ZIP: msmvps.com/jvargas&lt;/p&gt;
&lt;p&gt;Para comenzar cree un formulario windows con un label, dos botones y un control timer.&lt;/p&gt;
&lt;p&gt;El formulario es el siguiente:&lt;/p&gt;
&lt;p&gt;&lt;img height="337" alt="" src="http://img168.imageshack.us/img168/8823/formularionz8.jpg" width="493" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;El label se llama lblTiempo, el boton &amp;quot;&amp;gt;&amp;quot; se llama btnIniciarPausar, el botón &amp;quot;O&amp;quot; se llama btnDetener y el timer se llama tmrTiempo.&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Ahi les adjunto los eventos correspondientes..&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim FechaInicio As DateTime, _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TiempoActivo As TimeSpan&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub btnIniciarPausar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIniciarPausar.Click&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If btnIniciarPausar.Text = &amp;quot;||&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;PAUSA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnIniciarPausar.Text = &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmrTiempo.Stop()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;REINICIAR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim FechaActiva As DateTime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FechaActiva = lblTiempo.Text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TiempoActivo = FechaActiva.TimeOfDay&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FechaInicio = Now&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnDetener.Enabled = True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnIniciarPausar.Text = &amp;quot;||&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmrTiempo.Start()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub btnDetener_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDetener.Click&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnDetener.Enabled = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnIniciarPausar.Text = &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lblTiempo.Text = &amp;quot;00:00:00.000&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmrTiempo.Stop()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub tmrTiempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrTiempo.Tick&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Tiempo As TimeSpan&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tiempo = Now.Subtract(FechaInicio).Duration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tiempo += TiempoActivo&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lblTiempo.Text = Microsoft.VisualBasic.Right(&amp;quot;00&amp;quot; &amp;amp; Tiempo.Hours, 2) &amp;amp; &amp;quot;:&amp;quot; &amp;amp; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.Right(&amp;quot;00&amp;quot; &amp;amp; Tiempo.Minutes, 2) &amp;amp; &amp;quot;:&amp;quot; &amp;amp; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.Right(&amp;quot;00&amp;quot; &amp;amp; Tiempo.Seconds, 2) &amp;amp; &amp;quot;.&amp;quot; &amp;amp; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.Right(&amp;quot;000&amp;quot; &amp;amp; Tiempo.Milliseconds, 3)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Refresh()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;Espero les sirva este ejemplo en el uso de TimeSpan al igual que Datetime.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;Saludos,&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;Jhonny Vargas P.&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1429338" width="1" height="1"&gt;</description><enclosure url="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.01.42.93.38/Cronometro.zip" length="48596" type="application/x-zip-compressed" /><category domain="http://msmvps.com/blogs/jvargas/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/jvargas/archive/tags/Visual+Basic+.NET/default.aspx">Visual Basic .NET</category><category domain="http://msmvps.com/blogs/jvargas/archive/tags/General/default.aspx">General</category><category domain="http://msmvps.com/blogs/jvargas/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/jvargas/archive/tags/Datetime/default.aspx">Datetime</category><category domain="http://msmvps.com/blogs/jvargas/archive/tags/Cron_26002300_243_3B00_metro/default.aspx">Cron&amp;#243;metro</category><category domain="http://msmvps.com/blogs/jvargas/archive/tags/TimeSpan/default.aspx">TimeSpan</category><category domain="http://msmvps.com/blogs/jvargas/archive/tags/cronometro/default.aspx">cronometro</category></item></channel></rss>