Feedback

VB - Datum des Montags einer Woche berechnen

Veröffentlicht von am 29.12.2012
(0 Bewertungen)
Dieses Snippet berechnet das Datum des Montags in einer Kalenderwoche im angegebenen Jahr

Hinweis: um bspws den Sonntag der besagten Woche zu erhalten müssen nur 6 Tage auf das Datum aufgerechnet werden:
Dim dt As DateTime = GetMondayDateOfWeek(49, 2012).AddDays(6)


Hinweis: Es handelt sich um die übersetzung in VB.NET von http://dotnet-snippets.de/dns/datum-des-montags-einer-woche-berechnen-SID1655.aspx
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

'Imports System.Globalization

Private Function GetMondayDateOfWeek(week As Integer, year As Integer) As DateTime
    Dim i As Integer = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(New DateTime(year, 1, 1), CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)

    If i = 1 Then
        Return CultureInfo.CurrentCulture.Calendar.AddDays(New DateTime(year, 1, 1), ((week - 1) * 7 - GetDayCountFromMonday(CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(New DateTime(year, 1, 1))) + 1))
    Else
        Dim x As Integer = Convert.ToInt32(CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(New DateTime(year, 1, 1)))
        Return CultureInfo.CurrentCulture.Calendar.AddDays(New DateTime(year, 1, 1), ((week - 1) * 7 + (7 - GetDayCountFromMonday(CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(New DateTime(year, 1, 1)))) + 1))
    End If
End Function

'Gibt den Wochentag als Zahl zurück, Montag entspricht 1
Private Function GetDayCountFromMonday(dow As DayOfWeek) As Integer
    Select Case dow
        Case DayOfWeek.Monday
            Return 1
        Case DayOfWeek.Tuesday
            Return 2
        Case DayOfWeek.Wednesday
            Return 3
        Case DayOfWeek.Thursday
            Return 4
        Case DayOfWeek.Friday
            Return 5
        Case DayOfWeek.Saturday
            Return 6
        Case Else
            'Sunday
            Return 7
    End Select
End Function

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!