timer displayed on label must count backwards

hi, i have a form with a timer and a label
the idea is that the text of the table is set to 00:15:00
and then it counts backwards to 0, and each second , it counts down.
the problem is with the string manipulation
i use vb6's left function, and i get the string to not display AM at the end because it would have displayed
12:14:59AM
now i need to remove the first 3 char's as well so that it only shows 14:59 and counts from there
 
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Enabled = True
        Timer1.Interval = 1000
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = Microsoft.VisualBasic.Left(DateAdd("s", -1, Label1.Text), 8)
        Label1.Text = Microsoft.VisualBasic.Right(Label1.Text, 5)
    End Sub

this current setup does not give a error but does not display it right because first i strip the last charaters off,
and then i still need the original value to calculate what the next value will be.
should i use a second timer? is there a way to use ms.vb.left & ms.vb.right right in one command?
thanks!
jxhardingAsked:
Who is Participating?
 
Fahad MukhtarDistinguished EngineerCommented:
Label1.Text = Convert.ToDateTime(textBox1.Text).AddSeconds(-1).TimeOfDay.ToString() ;
0
 
Fahad MukhtarDistinguished EngineerCommented:
you are in vb.net so better pick a .Net way if there is. Use the AddSeconds(-n) function to achieve this :

dim dt as DateTime = DateTime.Now
dt.AddSeconds(-1)

I think you will get rid of the string manipulation
0
 
Fahad MukhtarDistinguished EngineerCommented:
this should fix the problem

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
     Label1.Text = Convert.ToDateTime(textBox1.Text).AddSeconds(-1).ToLongTimeString()
 End Sub

assuming Label1 has some valid time string before running this code
0
 
jxhardingAuthor Commented:
hi desp,
i tried both fixes ,and although they make perfect sense, i still get
12:14:59AM
on both
did your's display correctly?
i tried having the text on the label as
00:15:00
and  00:15
thanks!
0
 
Fahad MukhtarDistinguished EngineerCommented:
replace textbox1 by label1 ... in the previous comment
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.