Support Forums

Full Version: [Snippet] Get OS Uptime
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
[Image: mM540.png]

Full Codes:
Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) _
                           Handles MyBase.Load

        Timer1.Enabled = True
        Timer1.Interval = 10
        Timer1.Start()
    End Sub

    Sub Timer1_Tick() Handles Timer1.Tick
        TextBox1.Text = GetOSUptime()
    End Sub

    Private Shared Function GetOSUptime() As String
        'Gets the number of milliseconds elapsed since the system started in minutes.

        Dim intDays As Integer
        Dim intHours As Integer
        Dim intMinutes As Integer
        Dim intSeconds As Integer
        Dim intRemainder As Integer
        Dim intTicks As Integer

        ' initialize string variables
        Dim strDays As String = ""
        Dim strHours As String = ""
        Dim strMinutes As String = ""
        Dim strSeconds As String = ""

        Try
            ' updates tick counter intTicks
            intTicks = System.Environment.TickCount

            ' there are  86400000 milliseconds in one day,
            ' 'compute whole days and get remainder
            Do
                intDays = Int(intTicks \ 86400000)
                intRemainder = intTicks Mod 86400000
            Loop Until intRemainder <= 86400000

            ' there are 3600000 milliseconds in one hour,
            ' 'compute whole hours and get remainder
            Do
                intHours = Int(intRemainder \ 3600000)
                intRemainder = intRemainder Mod 3600000
            Loop Until intRemainder <= 3600000

            ' there are 60000 milliseconds in one minute,
            ' compute whole minutes and get remainder
            Do
                intMinutes = Int(intRemainder \ 60000)
                intRemainder = intRemainder Mod 60000
            Loop Until intRemainder <= 60000

            ' there are 1000 milliseconds in one second,
            ' compute whole seconds and get remainder
            Do
                intSeconds = Int(intRemainder \ 1000)
                intRemainder = intRemainder Mod 1000
            Loop Until intRemainder <= 1000

            ' format days
            If intDays = 0 Then
                strDays = ""
            ElseIf Trim(CStr(intDays)).Length = 1 Then
                strDays = String.Format(" {0}:", Trim(CStr(intDays)))
            ElseIf Trim(CStr(intDays)).Length = 2 Then
                strDays = Trim(CStr(intDays)) & ":"
            End If

            ' format hours
            If intHours = 0 And intDays = 0 Then
                strHours = ""
            ElseIf Trim(CStr(intHours)).Length = 1 Then
                strHours = String.Format("0{0}:", Trim(CStr(intHours)))
            ElseIf Trim(CStr(intHours)).Length = 2 Then
                strHours = Trim(CStr(intHours)) & ":"
            End If

            ' format minutes
            If intMinutes = 0 Then
                strMinutes = "00" & ":"
            ElseIf Trim(CStr(intMinutes)).Length = 1 Then
                strMinutes = String.Format("0{0}:", Trim(CStr(intMinutes)))
            ElseIf Trim(CStr(intMinutes)).Length = 2 Then
                strMinutes = Trim(CStr(intMinutes)) & ":"
            End If

            ' format seconds
            If intSeconds = 0 Then
                strSeconds = "00"
            ElseIf Trim(CStr(intSeconds)).Length = 1 Then
                strSeconds = "0" & Trim(CStr(intSeconds))
            ElseIf Trim(CStr(intSeconds)).Length = 2 Then
                strSeconds = Trim(CStr(intSeconds))
            End If

            ' return time string
            Return strDays & strHours & strMinutes & strSeconds
        Catch ex As Exception
            Return ""
        End Try
    End Function

End Class