SpeedwayNative 0 Newbie Poster

So, my Vb 2010 midterm project is due a 8am (about 2 hours). I have coded almost everything I need. Just before I was about to submit this, I noticed in the instructions that hours needs to be included as well. I have been trying to do this for about 2hrs now, and just can't seem to get it right.

I am trying to do 2 things:

1. I need the display to look like this 0:00:00, populating the placeholders as the user enters in the time
2. I need the # of hours no great than 9

Here are the instructions I am trying to adhere to:

The user should be able to enter a number of hours no greater than 9, a number of minutes no greater than 59 and a number of seconds no greater than 59; otherwise, the invalid cook time will be set to zero.

Maybe the 6 straight hours working on this has me delirious, but everytime I try to add hours, the program will not even run. Any guidance here would be very appreciated :)

Public Class Form1

    'contains time entered as a String
    Private timeIs As String = ""

    'contains time entered
    Private timeObject As Time

    'Button 1 click appends 1 to the time string
    Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click

        Beep() 'sounds beep
        timeIs &= "1" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 2 click appends 2 to the time string
    Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click

        Beep() 'sounds beep
        timeIs &= "2" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 3 click appends 3 to the time string
    Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click

        Beep() 'sounds beep
        timeIs &= "3" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 4 click appends 4 to the time string
    Private Sub btn4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn4.Click

        Beep() 'sounds beep
        timeIs &= "4" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 5 click appends 5 to the time string
    Private Sub btn5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn5.Click

        Beep() 'sounds beep
        timeIs &= "5" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 6 click appends 6 to the time string
    Private Sub btn6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn6.Click

        Beep() 'sounds beep
        timeIs &= "6" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 7 click appends 7 to the time string
    Private Sub btn7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn7.Click

        Beep() 'sounds beep
        timeIs &= "7" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 8 click appends 8 to the time string
    Private Sub btn8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn8.Click

        Beep() 'sounds beep
        timeIs &= "8" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 9 click appends 9 to the time string
    Private Sub btn9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn9.Click

        Beep() 'sounds beep
        timeIs &= "9" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'Button 0 click appends 0 to the time string
    Private Sub btn0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn0.Click

        Beep() 'sounds beep
        timeIs &= "0" 'append digit to time input
        DisplayTime() 'display the time input 
    End Sub

    'starts the microwave's cooking process
    Private Sub Startbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Startbtn.Click

        Dim second As Integer
        Dim minute As Integer

        'limit timeIs to 4 characters
        timeIs = timeIs.PadLeft(4, Convert.ToChar("0"))

        'extract seconds and minutes
        second = Convert.ToInt32(timeIs.Substring(2))
        minute = Convert.ToInt32(timeIs.Substring(0, 2))

        'create Time object to contain time entered by user
        timeObject = New Time(minute, second)

        displayLabel.Text = String.Format("{0:D2}:{1:D2}",
            timeObject.Minute, timeObject.Second)

        timeIs = "" 'clear timeIs for future imput

        clockTimer.Enabled = True 'start timer

        windowPanel.BackColor = Color.Yellow 'turn "light" on
    End Sub

    'Clear button to clear input
    Private Sub Clearbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Clearbtn.Click

        'reset timer to its initial setting
        displayLabel.Text = "Enter Time"
        foodLabel.Text = ""
        timeIs = ""
        timeObject = New Time(0, 0)
        clockTimer.Enabled = False
        windowPanel.BackColor = Control.DefaultBackColor
    End Sub

    'method to display formatted time in timer window
    Private Sub DisplayTime()

        Dim second As Integer
        Dim minute As Integer
        Dim hour 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, Convert.ToChar("0"))

        'extract seconds and minutes
        second = Convert.ToInt32(display.Substring(2))
        minute = Convert.ToInt32(display.Substring(0, 2))
        hour = Convert.ToInt32(display.Substring(0, 1))

        'display number of minutes, ":" and number of seconds
        displayLabel.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", hour, minute, second)
    End Sub 'display time

    'diplays new time each second that passes
    Private Sub clockTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clockTimer.Tick

        clockTimer.Interval = 1000

        

        'performs countdown, subtract one second
        If timeObject.Second > 0 Then
            My.Computer.Audio.Play(My.Resources._Loop, AudioPlayMode.Background)
            timeObject.Second -= 1
            displayLabel.Text = String.Format("{0:D2}:{1:D2}", timeObject.Minute, timeObject.Second)
        ElseIf timeObject.Minute > 0 Then
            timeObject.Minute -= 1 'subtract one minute
            timeObject.Second = 59 'reset seconds for new minute
            displayLabel.Text = String.Format("{0:D2}:{1:D2}", timeObject.Minute, timeObject.Second)
        Else 'no more seconds
            clockTimer.Enabled = False 'stop timer
            Console.Beep(2000, 3000)
            displayLabel.Text = "Done!" 'inform user time is finished
        End If
        If timeObject.Second > 0 Or
            timeObject.Minute > 0 Then
            foodLabel.Text = "Still Cooking!"
            'My.Computer.Audio.Play(My.Resources._Loop, AudioPlayMode.Background)
        ElseIf timeObject.Second = 0 Then
            windowPanel.BackColor = Control.DefaultBackColor
            foodLabel.Text = "Mr. Carver, your food is hot and ready!"
        End If
    End Sub 'clockTimer_Tick
End Class 'Microwave

'Time.vb
'Represents time data and contains properties

Public Class Time

    'declare Integers for minute and second
    Private minuteValue As Integer
    Private secondValue As Integer

    'Time constructor, minute and second supplied
    Public Sub New(ByVal mm As Integer, ByVal ss As Integer)

        Minute = mm 'invokes Minute Set accessor
        Second = ss 'invokes Second Set accessor
    End Sub 'New

    '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