copyright 1999 - 2014 by heinz prelle - hannover  - lenbachstraße 42 - www.visual-basic5.de | impressum
'Beispiel: VB .Net - Zeitdifferenz in Sekunden ermitteln

'Hinweis : Es wird die Differenz in Sekunden von einem in der Vergangenheit liegendem Jahr bis
'Heute berechnet. Startdatum ist immer: 1.1. + ausgewaehlte Jahreszahl
'
Option Explicit On
Option Strict On

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles Button1.Click
        Dim Seconds As String = String.Empty
        With dd
            .Year = _
                CType(Me.NumericUpDown1.Value(), Integer) _
              : .Month = 1 _
              : .Day = 1 _
              : .Hour = 0 _
              : .Minute = 0 _
              : .Second = 0
            Seconds = FormatStringWithThousandsSeparator _
                ( _
                    GetSecondsFromSpecificDate(.Year, Now()).ToString() _
                )
        End With
        MessageBox.Show(Seconds, "Info")
    End Sub

    Private Function FormatStringWithThousandsSeparator(ByVal Number As String) As String
        Dim ConvertedNumber As String
        Try
            Dim Result As Long = Int64.Parse(number, Globalization.NumberStyles.AllowThousands)
            ConvertedNumber = Result.ToString("#,0")
        Catch
            ConvertedNumber = ""
        End Try
        Return ConvertedNumber
    End Function

    Private Structure DateData
        Dim Year As Integer
        Dim Month As Integer
        Dim Day As Integer
        Dim Hour As Integer
        Dim Minute As Integer
        Dim Second As Integer
    End Structure

    Private dd As DateData

    Private Function GetSecondsFromSpecificDate(ByVal DateFrom As Integer, _
                                                ByVal CurrentDate As DateTime) As Double
        Dim TotalSeconds As Double = 0
        Try
            Dim Result As DateTime

            With dd
                Result = New DateTime _
                    ( _
                        DateFrom, _
                        .Month, _
                        .Day, _
                        .Hour, _
                        .Minute, _
                        .Second, _
                        DateTimeKind.Unspecified _
                    )
            End With

            Dim Difference As TimeSpan = CurrentDate - Result
            TotalSeconds = Math.Floor(Difference.TotalSeconds())
        Catch ex As Exception
            MessageBox.Show(ex.Message(), "Info")
        End Try
        Return TotalSeconds
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles MyBase.Load
        With Me
            .Text = "Zeitdifferenz in Sekunden ermitteln"
            .CenterToScreen()
            .Button1.Text = "Test"
            .Label1.Text = "Datum von dem gezaehlt werden soll:"
            With Me.NumericUpDown1
                .Minimum = 1
                .Maximum = Now().Year
                .Value = 1889
                .Increment = 1
            End With
        End With
    End Sub

End Class
Sourcecode Visual Basic