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 :

Propriedades Públicas

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:


José Carlos Macoratti