| Joined: Mar 2002 Posts: 9 Junior Member | Junior Member Joined: Mar 2002 Posts: 9 | OK, just wondering if someone had a snippit of vb code to do a countdown timer, to go from the current date, to a set date, that will display the number of Days, Hours, Minutes, and Seconds till the target date. I've just started playing with VB and would appreciate some guidance just for this issue. I'm sure in the future I'll be better able to sort these things when I am more familiar with VB's attitude and thought process. Many thanks!  | | |
▼ Sponsored Links ▼
▲ Sponsored Links ▲
| | | Joined: Mar 2002 Posts: 9 Junior Member | Junior Member Joined: Mar 2002 Posts: 9 | Many Thanks! Gismo, I saw a couple things that look like they will do the trick. Will let you know what my code diving adventures surface tonight.  | | | | Joined: Feb 2002 Posts: 7,203 Likes: 11 Community Owner | Community Owner Joined: Feb 2002 Posts: 7,203 Likes: 11 | lol glad i could be of service  . | | | | Joined: Mar 2002 Posts: 9 Junior Member | Junior Member Joined: Mar 2002 Posts: 9 | I got it figured out, fyi :
Private Sub Timer1_Timer() Dim MyDate, MyTime, MyHour, MyMinute, MySec Dim TgtDate, TgtTime, TgtHour, TgtMinute, TgtSec
'Change TgtDate to whatever date you want to count down to. TgtDate = #8/17/2002# TgtHour = 24 TgtMinute = 60 TgtSec = 60
MyDate = DateDiff("d", Now() + 1, TgtDate) MyHour = TgtHour - Format(Now(), "hh") MyHour = Format(MyHour, "0#") MyMinute = TgtMinute - Format(Now(), "nn") MyMinute = Format(MyMinute, "0#") MySec = TgtSec - Format(Now(), "ss") MySec = Format(MySec, "0#") label1 = MyDate & " Days " & MyHour & ":" & MyMinute & ":" & MySec End Sub | | | | Joined: Feb 2002 Posts: 7,203 Likes: 11 Community Owner | Community Owner Joined: Feb 2002 Posts: 7,203 Likes: 11 | woudlnt it be more practicle to use a dll and have it save a date/time to count down to? | | | | Joined: Mar 2002 Posts: 1,273 DollarDNS Owner | DollarDNS Owner Joined: Mar 2002 Posts: 1,273 | I'm really big on efficiency and accuracy, so here's my anal response. Your code is 1 hour and 1 minute off. To see for yourself, set the TgtDate to the next day and do a little math. Here's your corrected and much more efficient code:
Private Sub Timer1_Timer() Dim TgtDate As Date
'Change TgtDate to whatever date you want to count down to. TgtDate = #3/7/2002#
Label1 = DateDiff("d", Now() + 1, TgtDate) & " Days " & Format(TgtDate - Now(), "hh:nn:ss") End Sub | | | | Joined: Feb 2002 Posts: 7,203 Likes: 11 Community Owner | Community Owner Joined: Feb 2002 Posts: 7,203 Likes: 11 | see thats why i love him lol | | | | Joined: Mar 2002 Posts: 9 Junior Member | Junior Member Joined: Mar 2002 Posts: 9 | I stand corrected, then. Thank you very much. Bear with me as I just started VB 3 days ago. :| I'm sure I'll have more "issues" (just call me M$ Certified. Failure is not an option, it comes bundled with the software.) Anywho.. onto more learning! | | | | Joined: Feb 2002 Posts: 7,203 Likes: 11 Community Owner | Community Owner Joined: Feb 2002 Posts: 7,203 Likes: 11 | ms certifide 'eh? so you crash a lot? heh my cusin wrote the Server 2 course book, beat that  | | | | Joined: Mar 2002 Posts: 256 Likes: 1 UGN Security Staff | UGN Security Staff Joined: Mar 2002 Posts: 256 Likes: 1 | 'An improvment to sr's code.
TgtDate = #3/7/2002 6:35:00 PM# Label1 = DateDiff("d", Now(), TgtDate) & " day(s) " & Format(TgtDate - Now(), "hh:nn:ss") If GetPiece(Label1.Caption, " ", 1) = "0" Then If Now() > Date & " " & Time Then Exit Sub End If End If Label1.Caption = Replace(Label1.Caption, "-", "Occured ") & " ago."
'Another function is used... here it is...
Function GetPiece(From As String, delim As String, index) As String Dim temp$ Dim Count Dim Where ' temp$ = From & delim Where = InStr(temp$, delim) Count = 0 Do While (Where > 0) Count = Count + 1 If (Count = index) Then GetPiece = Left$(temp$, Where - 1) Exit Function End If temp$ = Right$(temp$, Len(temp$) - Where) Where = InStr(temp$, delim) DoEvents Loop If (Count = 0) Then GetPiece = From Else GetPiece = "" End If End Function
Im not sure if it is accurate or not. Brief testing proves it to be correct but I dont know you guys can check that out | | | | Joined: Mar 2002 Posts: 1,273 DollarDNS Owner | DollarDNS Owner Joined: Mar 2002 Posts: 1,273 | /me points to neo's code
He's a commendable programmer, but HIS stuff IS along Microsoft quality.
Here's a minor fix. The days count was the only piece of the original code that I didn't modify - cause I thought it worked. But it didn't when I tested adding a time. So here's the fixed code:
Private Sub Timer1_Timer() Dim TgtDate As Date
'Change TgtDate to whatever date you want to count down to. TgtDate = #3/8/2002 12:00:00 PM#
Label1 = DateDiff("d", Now(), TgtDate) - 1 & " Days " & Format(TgtDate - Now(), "hh:nn:ss") End Sub | | | | Joined: Mar 2002 Posts: 9 Junior Member | Junior Member Joined: Mar 2002 Posts: 9 | Thanks Everyone, you've been a great help.  | | |
Forums41 Topics33,840 Posts68,858 Members2,176 | Most Online3,253 Jan 13th, 2020 | | | |