Rubrik: Datum/Zeit und Timer · Datums- und Zeit-Funktionen | VB-Versionen: VB2005 - VB2015 | 08.07.16 |
Kalenderwoche korrekt ermitteln II Leider funktioniert die DatePart-Funktion in Bezug auf das Ermitteln der Kalenderwoche nicht korrekt. Dieser Tipp schafft Abhilfe. | ||
Autor: Helmut Kraner | Bewertung: | Views: 6.309 |
ohne Homepage | System: Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Die korrekte Kalenderwoche (auch am Jahresende) hab ich folgendermassen gelöst:
Ich addiere einfach 7 Tage zum Datum dazu und prüfe, ob Woche 2 rauskommt. Wenn ja, ist logischerweise die richtige Kalenderwoche die 1 (und nicht die KW 53, wie z. B. am 31.12.2007). Ansonsten ermittle ich nochmals mit dem übergebenen Datum die Kalenderwoche.
''' <summary> ''' Kalenderwoche korrekt ermitteln ''' </summary> ''' <param name="Datum">Datum, für das die Kalenderwoche ermittelt werden soll</param> ''' <returns>Kalenderwoche</returns> Public Function Kalenderwoche(ByVal Datum As Date) As Integer Dim CUI As New System.Globalization.CultureInfo( _ System.Globalization.CultureInfo.CurrentCulture.Name) If CUI.Calendar.GetWeekOfYear(Datum.AddDays(7), _ CUI.DateTimeFormat.CalendarWeekRule, CUI.DateTimeFormat.FirstDayOfWeek) = 2 Then Return 1 Else Return CUI.Calendar.GetWeekOfYear(Datum, _ CUI.DateTimeFormat.CalendarWeekRule, CUI.DateTimeFormat.FirstDayOfWeek) End If End Function