I know there's a boat load of examples of this out there, but I've confused the hell out of myself.
I have 4 timers that I run on a form from a button click. They can also get started from Form_Load if certain conditions are met. Posting just one Timer block because only the variable names and label that I display the time in change in the other 3.
My Form_Load
Here is where I am stuck. Trying to translate this from english to code:
I need to compare the value in my 4 variables (soldierstime, guardsmentime, specialforcestime, thievestime) to difference.TotalSeconds (the number of seconds elapsed since user logged off to Now())
I dont think this is correct because on the first If difference.TotalSeconds returns a negative number based on the two dates I set, so my variable will always be bigger. I believe the second If is correct.
So maybe I need to just rewrite difference = bfdateloggedoff.Subtract(Now()) and swap the Now() with the date to fix this?
I have 4 timers that I run on a form from a button click. They can also get started from Form_Load if certain conditions are met. Posting just one Timer block because only the variable names and label that I display the time in change in the other 3.
Code:
'Private Sub SoldiersTimer_Tick(sender As Object, e As EventArgs) Handles SoldiersTimer.Tick
' soldierstime = soldierstime - 1
' soldierts = TimeSpan.FromSeconds(soldierstime)
' SoldiersTimeLabel.Text = String.Format("{0:00}:{1:00}:{2:00}", soldierts.Hours, soldierts.Minutes, soldierts.Seconds)
' If SoldiersTimeLabel.Text = "00:00:00" Then
' SoldiersTimer.Stop()
' call update procedure to do some things for all accounts
' End If
'End SubCode:
'Declarations
Dim bfdateloggedoff as Date
Dim difference, soldierts, guardsments, specialforcests, thievests as TimeSpan
Dim soldierstime, guardsmentime, specialforcestime, thievestime As IntegerCode:
'get the date and time the user last logged out from the db
bfdateloggedoff = dsaccounts.Tables("Accounts").Rows(reccount).Item(11) '(default value in db until I get things rolling 1/1/2013 12:00:01 AM)
'calculate the time difference between Now() and the time the user logged out
difference = bfdateloggedoff.Subtract(Now())
'timer time in seconds to countdown = number of units * 60 seconds * total minutes it will take for 1 unit
'we need to know the beginning number the user started with before they logged out
soldierstime = dsmilitary.Tables("Military").Rows(reccount).Item(4) * 60 * 12
guardsmentime = dsmilitary.Tables("Military").Rows(reccount).Item(6) * 60 * 12
specialforcestime = dsmilitary.Tables("Military").Rows(reccount).Item(8) * 60 * 12
thievestime = dsmilitary.Tables("Military").Rows(reccount).Item(10) * 60 * 12Here is where I am stuck. Trying to translate this from english to code:
I need to compare the value in my 4 variables (soldierstime, guardsmentime, specialforcestime, thievestime) to difference.TotalSeconds (the number of seconds elapsed since user logged off to Now())
Code:
'continue where we would have left off if we hadn't closed the program
If variable_name > difference.TotalSeconds Then
variable_name = variable_name - difference.TotalSeconds
'Start appropriate timer
End If
'if time expired while we were logged out, change what we need to change
If difference.TotalSeconds - variable_name <= 0 Then
'do database stuff
End IfSo maybe I need to just rewrite difference = bfdateloggedoff.Subtract(Now()) and swap the Now() with the date to fix this?