Rubrik: Datum/Zeit und Timer · Datums- und Zeit-Funktionen | VB-Versionen: VB.NET | 24.11.06 |
Datum einer bestimmten Kalenderwoche ermitteln Mit dieser Funktion lässt sich das Wochenanfangsdatum einer Kalenderwoche eines bestimmten Jahres ermitteln. | ||
Autor: Dieter Otter | Bewertung: | Views: 35.829 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wann war doch gleich die KW 23 - keinen Kalender mit Wochenangabe zur Hand, dann schauen Sie sich einmal nachfolgende Tipp an.
VB.NET verfügt zwar über zahlreiche Möglichkeit zur Datumsberechnung, jedoch leider nicht über eine entsprechende Funktion, das Datum einer bestimmten Kalenderwoche eines beliebigen Jahres zu berechnen.
Diese Aufgabe übernimmt ab sofort unsere neue Funktion CalendarWeek, die im ersten Parameter die Kalenderwoche und im zweiten Parameter die Jahresangabe erwartet. Zurückgegeben wird dann das Wochenanfangsdatum der gewünschten Kalenderwoche.
''' <summary> ''' Ermittelt das Datum einer bestimmten Kalenderwoche ''' eines beliebigen Jahres ''' </summary> ''' <param name="nWeek">Kalenderwoche, zu der das Wochenanfangsdatum ''' ermittelt werden soll</param> ''' <param name="nYear">Jahresangabe</param> ''' <returns>Wochenanfangsdatum (Date)</returns> ''' <remarks></remarks> Public Function CalendarWeek(ByVal nWeek As Integer, _ ByVal nYear As Integer) As Date ' Wochentag des 4. Januar des Jahres ermitteln Dim dStart As New Date(nYear, 1, 4) Dim nDay As Integer = (dStart.DayOfWeek + 6) Mod 7 + 1 ' Beginn der 1. KW des Jahres Dim dFirst As Date = dStart.AddDays(1 - nDay) ' Gesuchte KW ermitteln Return dFirst.AddDays((nWeek - 1) * 7) End Function
Beispiel für den Aufruf:
' Datum der KW 23 im Jahr 2006 ermitteln Label1.Text = CalendarWeek(23, 2006)
' Wochenanfang und Wochenende der KW 27 im Jahr 2006 Dim dStart As Date = CalendarWeek(27, 2006) Label1.Text = dStart & " - " & dStart.AddDays(6)