Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 18 Marzo 2013, 18:34 pm



Título: [SOLUCIONADO] Calcular el tiempo restante
Publicado por: Eleкtro en 18 Marzo 2013, 18:34 pm
Lo del tiempo transcurrido lo tengo manejado ya, pero para mostrar el tiempo restante me estoy haciendo un lío...

Código
  1.    Dim time_out as integer = 60000 ' 'Milisegundos
  2.  
  3.    Dim StartTime As DateTime ' Tiempo inicio
  4.    Dim EndTime As DateTime ' Tiempo final
  5.  
  6.    Dim ElapsedTime As TimeSpan ' Tiempo transcurrido
  7.    Dim RemainingTime As TimeSpan ' Tiempo restante

He conseguido mostrar el tiempo restante pero de una manera extraña, el problema es que, aparte de que los valores se muestran negativos, el valor de la hora y el minutero deberían ser "00"... ya que sólo estoy intentando medir el tiempo restante de una operación de "10000" MS (10 segs)

Output:
(http://img41.imageshack.us/img41/9628/prtscrcapture3k.jpg)

Este es el code que uso, ¿Como lo arreglo?
Código
  1. #Region " Elapsed Time Function "
  2.  
  3.    Public Function Print_Elapsed_Time()
  4.        If StartTime.ToString = "01/01/0001 0:00:00" Then
  5.            StartTime = Now
  6.            StartTime = StartTime.AddSeconds(-1)
  7.        End If
  8.        ElapsedTime = Now().Subtract(StartTime)
  9.        Return String.Format("{0:00}:{1:00}:{2:00}", CInt(Math.Floor(ElapsedTime.TotalHours)) Mod 60, CInt(Math.Floor(ElapsedTime.TotalMinutes)) Mod 60, CInt(Math.Floor(ElapsedTime.TotalSeconds)) Mod 60)
  10.    End Function
  11. #End Region
  12.  
  13. #Region " Remaining Time Function "
  14.  
  15.    Public Function Print_Remaining_Time()
  16.        If EndTime.ToString = "01/01/0001 0:00:00" Then
  17.            EndTime = Now
  18.            EndTime = EndTime.AddMilliseconds(Time_Out - 1000)
  19.        End If
  20.        RemainingTime = Now().Subtract(EndTime)
  21.        Return String.Format("{0:00}:{1:00}:{2:00}", CInt(Math.Floor(RemainingTime.TotalHours)) Mod 60, CInt(Math.Floor(RemainingTime.TotalMinutes)) Mod 60, CInt(Math.Floor(RemainingTime.TotalSeconds)) Mod 60)
  22.    End Function
  23.  
  24. #End Region


Título: Re: Calcular el tiempo restante
Publicado por: Eleкtro en 18 Marzo 2013, 19:49 pm
Ya está solucionado...

Cambiar:
Código:
RemainingTime = Now().Subtract(EndTime)

Por:
Código:
RemainingTime = EndTime.Subtract(Now)

Saludos.


Título: Re: [SOLUCIONADO] Calcular el tiempo restante
Publicado por: Crazy.sx en 28 Marzo 2013, 05:57 am
Yo hice un código muy largo para poder hacer esto tan simple jaja que al final era algo tonto. Jeje.

Saludos.