I'm having issues with this program, I keep getting an error with the substrings on the "second" part...
It's an oven timer ...display is supposed to be like this 1:11:11, hour minute second....any help will be greatly appreciated....thank you
Code:Private Sub startButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles startButton.Click
Dim second As Integer
Dim minute As Integer
Dim hour As Integer
' ensure that timeIs has 5 characters
timeIs = timeIs.PadLeft(5, "0"c)
' extract seconds minutes and hours
second = Convert.ToInt32(timeIs.Substring(3))
minute = Convert.ToInt32(timeIs.Substring(1, 2))
hour = Convert.ToInt32(timeIs.Substring(0, 1))
' create Time object to contain time entered by user
timeObject = New Time(hour, minute, second)
displayLabel.Text = String.Format("{0:D1}:{1:D2}:{2:D2}", timeObject.Hour, timeObject.Minute, timeObject.Second)
timeIs = "" ' clear timeIs for future input
clockTimer.Enabled = True ' start timer
windowPanel.BackColor = Color.Yellow ' turn "light" on
End Sub ' startButton_Click
' event handler to clear input
Private Sub clearButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles clearButton.Click
' reset each property or variable to its initial setting
displayLabel.Text = "Microwave Oven"
timeIs = ""
timeObject = Nothing
clockTimer.Enabled = False
windowPanel.BackColor = Control.DefaultBackColor
End Sub ' clearButton_Click
' method to display formatted time in timer window
Private Sub DisplayTime()
Dim hour As Integer
Dim second As Integer
Dim minute As Integer
Dim display As String ' String displays current input
' if too much input entered
If timeIs.Length > 5 Then
timeIs = timeIs.Substring(0, 5)
End If
display = timeIs.PadLeft(5, "0"c)
' extract seconds minutes and hours
second = Convert.ToInt32(timeIs.Substring(3))
minute = Convert.ToInt32(timeIs.Substring(1, 2))
hour = Convert.ToInt32(timeIs.Substring(0, 1))
' display number of hours ":" minutes, ":" and number of seconds
displayLabel.Text = String.Format("{0:D1}:{1:D2}:{2:D2}", hour, minute, second)
End Sub ' DisplayTime
' event handler displays new time each second
Private Sub clockTimer_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles clockTimer.Tick
' perform countdown, subtract one second
If timeObject.Second > 0 Then
timeObject.Second -= 1
displayLabel.Text = String.Format("{0:D1}:{1:D2}:{2:D2}", timeObject.Hour, timeObject.Minute, timeObject.Second)
ElseIf timeObject.Minute > 0 Then
timeObject.Minute -= 1
timeObject.Second = 59
displayLabel.Text = String.Format("{0:D1}:{1:D2}:{2:D2}", timeObject.Hour, timeObject.Minute, timeObject.Second)
ElseIf timeObject.Hour > 0 Then
timeObject.Hour -= 1
timeObject.Minute = 59
timeObject.Second = 59
displayLabel.Text = String.Format("{0:D1}:{1:D2}:{2:D2}", timeObject.Hour, timeObject.Minute, timeObject.Second)
Else ' countdown finished
clockTimer.Enabled = False ' stop timer
Beep()
displayLabel.Text = "Done!" ' inform user time is finished
windowPanel.BackColor = Control.DefaultBackColor
End If
End Sub ' clockTimer_Tick
End Class ' MicrowaveOvenForm
Code:Public Class Time
' declare Integers for hour minute and second
Private minuteValue As Integer
Private secondValue As Integer
Private hourValue As Integer
' Time constructor, minute and second supplied
Public Sub New(ByVal hh As Integer, ByVal mm As Integer, ByVal ss As Integer)
Hour = hh ' invokes Hour set accessor
Minute = mm ' invokes Minute set accessor
Second = ss ' invokes Second set accessor
End Sub ' New
' property Hour
Public Property Hour() As Integer
' return Hour value
Get
Return hourValue
End Get ' end of Get accessor
' set Hour value
Set(ByVal value As Integer)
'if hour value entered is valid
If (value < 10) Then
hourValue = value
Else
hourValue = 0 ' set invalid input to 0
End If
End Set ' end of Set accessor
End Property ' Hour
' property Minute
Public Property Minute() As Integer
' return Minute value
Get
Return minuteValue
End Get ' end of Get accessor
' set Minute value
Set(ByVal value As Integer)
'if minute value entered is valid
If (value < 60) Then
minuteValue = value
Else
minuteValue = 0 ' set invalid input to 0
End If
End Set ' end of Set accessor
End Property ' Minute
' property Second
Public Property Second() As Integer
' return Second value
Get
Return secondValue
End Get ' end of Get accessor
' set Second Value
Set(ByVal value As Integer)
' if second value entered is valid
If (value < 60) Then
secondValue = value
Else
secondValue = 0 ' set invalid input to 0
End If
End Set ' end of Set accessor
End Property ' Second
End Class ' Time

