VB .NET - Medindo diferença entre intervalo de tempos
O VB.NET trouxe grandes melhorias no tratamento de datas e horas. Calcular a diferença entre dois tempos ficou mais fácil e mais preciso.
Neste artigo vou mostrar como calcular a diferença entre tempos usando os novos métodos disponíveis no VB .NET.
Um exemplo prático irá esclarecer melhor. Vou calcular a diferença entre dois eventos.
Crie um novo projeto no VB.NET e no formulário padrão coloque um botão de comando com o texto Iniciar e uma label com a propriedade Text vazia.
Vai funcionar assim :
O código associado ao evento Click do botão - btnMedir - é dado a seguir:
Sub
btnMedir_Click(sender As Object, e As EventArgs) Static t_inicio As DateTime Static t_fim As DateTime Dim t_diferenca As TimeSpan If btnMedir.Text = "Iniciar" Then lblDiferenca.Text = "" t_inicio = Now btnMedir.Text = "Parar" Else t_fim = Now t_diferenca = t_fim.Subtract(t_inicio) lblDiferenca.Text = t_diferenca.TotalSeconds.ToString("0.000000") & " segundos" btnMedir.Text = "Iniciar" End If End Sub |
A diferença básica , em relação ao VB5/6 , esta na classe TimeSpan usada e no método Subtract usado para calcular a diferença entre os tempos.
Note que para expressar a diferença em segundos estou usando a propriedade TotalSeconds .
A classe TimeSpan representa um intervalo de tempo . O valor é medido em números de ticks contido em uma instância e pode variar de Int64.MinValue a Int64.MaxValue .(Um tick é a menor unidade de tempo que pode ser definida e é igual a 100 nanosegundos).
Podemos representar um TimeSpan
como uma string no formato "[-]d.hh:mm:ss.ff" onde
"-" é um sinal opcional para valores negativos.
Os principais métodos e propriedades de TimeSpan são :
Days | Obtêm o número total de dias representado pela instância |
Hours | Obtêm o número total de horas representado pela instância. |
Milliseconds | Obtêm o número total de milliseconds representado pela instância. |
Minutes | Obtêm o número total de minutos representado pela instância. |
Seconds | Obtêm o número total de segundos representado pela instância. |
Ticks | Obtêm o valor da instância expressa em ticks. |
TotalDays | Obtêm o valor da instância expressa em dias totais e fracionários. |
TotalHours | Obtêm o valor da instância expressa em horas totais e fracionárias. |
TotalMilliseconds | Obtêm o valor da instância expressa em milisegundos totais e não inteiros. |
TotalMinutes | Obtêm o valor da instância expressa em miniutos totais e não inteiros. |
TotalSeconds | Obtêm o valor da instância expressa em segundos totais e não inteiros |
Métodos Públicos
Add | Incluir um TimeSpan especifico na instância. |
Compare | Compara dois valores de TimeSpan e retorna um inteiro que indica seu relacionamento. |
Duration | Retorna o TimeSpan cujo valor é o valor absoluto da instância. |
Equals | Overloaded. Overridden. Retorna um valor que indica se duas instâncias de TimeSpan são iguais. |
Subtract | Subtrai o valor definido de TimeSpan de sua instância. |
ToString | Overridden. Retorna uma representação em string de um valor da instância. |
E até a próxima ...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: