Solved

timer displayed on label must count backwards

Posted on 2004-09-15
5
396 Views
Last Modified: 2008-02-01
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
Comment
Question by:jxharding
  • 4
5 Comments
 
LVL 19

Expert Comment

by:Desp
ID: 12062163
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
 
LVL 19

Expert Comment

by:Desp
ID: 12062402
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
 

Author Comment

by:jxharding
ID: 12062432
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
 
LVL 19

Accepted Solution

by:
Desp earned 250 total points
ID: 12062602
Label1.Text = Convert.ToDateTime(textBox1.Text).AddSeconds(-1).TimeOfDay.ToString() ;
0
 
LVL 19

Expert Comment

by:Desp
ID: 12062608
replace textbox1 by label1 ... in the previous comment
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article explains how to create and use a custom WaterMark textbox class.  The custom WaterMark textbox class allows you to set the WaterMark Background Color and WaterMark text at design time.   IMAGE OF WATERMARKS STEPS Create VB …
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question