FirstDayOfWeek bei bestimmter KW

Hi,

es ist zwar verdammt schmutzig und geht sicherlich schöner, aber mal schnell in ein paar Minuten zusammengecoded, sollte eigentlich funktionieren.

Code:
		private DateTime GetKWFromDate(int week) {
 			DateTime firstday = DateTime.Parse("1/1/1970");
 			if (week > 0 && week < 54) {
 				
 				CultureInfo aCI = new CultureInfo("de-DE");
 				System.Globalization.Calendar aCal = aCI.Calendar;
 				CalendarWeekRule aCWR = aCI.DateTimeFormat.CalendarWeekRule;
 				DayOfWeek aFirstDOW = aCI.DateTimeFormat.FirstDayOfWeek;
 				DateTime temp = new DateTime(DateTime.Now.Year, 1, 1);
 				
 				int tempweek = 1;
 				
 				while (tempweek != week) {
 					temp = temp.AddDays(1);
 					tempweek = aCal.GetWeekOfYear(temp, aCWR, aFirstDOW);
 				}
 				
 				firstday = temp;
 				
 				DayOfWeek daw = aCal.GetDayOfWeek(temp);
 				
 				switch(daw) {
 					case DayOfWeek.Monday:
 						firstday = temp;
 						break;
 					case DayOfWeek.Tuesday:
 						firstday = temp.AddDays(-1);
 						break;
 					case DayOfWeek.Wednesday:
 						firstday = temp.AddDays(-2);
 						break;
 					case DayOfWeek.Thursday:
 						firstday = temp.AddDays(-3);
 						break;
 					case DayOfWeek.Friday:
 						firstday = temp.AddDays(-4);
 						break;
 					case DayOfWeek.Saturday:
 						firstday = temp.AddDays(-5);
 						break;
 					case DayOfWeek.Sunday:
 						firstday = temp.AddDays(-6);
 						break;
 				}
 				
 				
 			}
 			return firstday;
 		}

DayOfWeek hab ich mal fix Montag angenommen, obwohl ichs ja auslesen würde, müsstest umbauen :)
 
Zuletzt bearbeitet:
Zurück