Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

73 Ermitteln der ISO-Kalenderwoche > 73 Ermitteln der ISO-Kalenderwoche - Pg. 177

{ this.Year = year; this.Week = week; } } /* Berechnet die Kalenderwoche eines internationalen Datums. * Diese Methode berechnet die Kalenderwoche eines Datums * nach der GetWeekOfYear-Methode eines Calendar-Objekts * und korrigiert den darin enthaltenen Fehler. */ public static CalendarWeek GetCalendarWeek(this DateTime date) { // Aktuelle Kultur ermitteln CultureInfo currentCulture = CultureInfo.CurrentCulture; // Aktuellen Kalender ermitteln Calendar calendar = currentCulture.Calendar; // Kalenderwoche über das Calendar-Objekt ermitteln int calendarWeek = calendar.GetWeekOfYear(date, currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek); // // // // // // // if { Überprüfen, ob eine Kalenderwoche größer als 52 ermittelt wurde und ob die Kalenderwoche des Datums in einer Woche 2 ergibt: In diesem Fall hat GetWeekOfYear die Kalenderwoche nicht nach ISO 8601 berechnet (Montag, der 31.12.2007 wird zum Beispiel fälschlicherweise als KW 53 berechnet). Die Kalenderwoche wird dann auf 1 gesetzt (calendarWeek > 52) date = date.AddDays(7); int testCalendarWeek = calendar.GetWeekOfYear(date, currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek); if (testCalendarWeek == 2) { calendarWeek = 1; } } // Das Jahr der Kalenderwoche ermitteln int year = date.Year; if (calendarWeek == 1 && date.Month == 12) { year++; } if (calendarWeek >= 52 && date.Month == 1) { year--; Listing 109: Methode zur Ermittlung der Kalenderwoche eines Datums über ein Calendar Objekt (Forts.) Datum und Zeit >> Datum und Zeit 177