Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 404
  • Last Modified:

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!
0
jxharding
Asked:
jxharding
  • 4
1 Solution
 
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:
Label1.Text = Convert.ToDateTime(textBox1.Text).AddSeconds(-1).TimeOfDay.ToString() ;
0
 
Fahad MukhtarDistinguished EngineerCommented:
replace textbox1 by label1 ... in the previous comment
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now