Laden...

DateTime: Nummer der Kalenderwoche ermitteln

Erstellt von Dolce vor 14 Jahren Letzter Beitrag vor 14 Jahren 12.874 Views
D
Dolce Themenstarter:in
206 Beiträge seit 2009
vor 14 Jahren
DateTime: Nummer der Kalenderwoche ermitteln

Hallo zusammen

Leider hatte ich bis jetzt keinen Erfolg die Weeknumber aus einem DateTimePicker auszulesen.
Hat jemand von euch eine Idee?

Gruss Raphael

Wer Rechtschreibfehler findet, darf sie behalten.

5.299 Beiträge seit 2008
vor 14 Jahren

Wieso die Kalenderwoche aus dem Datetimepicker lesen? Die KW ist doch etwas, was aus einem Datum berechnet wird, also du kannst das Datum aussm DTP nehmen, und damit die KW ausrechnen.
Zur Rechnerei selbst habich grad kein Plan, glaub da gibts sogar verschiedene Standards, aber probierma in der Foren-Suche "Kalenderwoche".

Der frühe Apfel fängt den Wurm.

1.134 Beiträge seit 2004
vor 14 Jahren

Unter CultueInfo gibts methoden dazu

aber achtung der ISO STandard der in Deutschland gilt ist teilweise abweichend.

Ich glaube Dezember 1999 oder 2000 gabs afaik das letzte mal eine abweichung von einer KW

Mein Stackoverflow Profil
Skype Name : Boas.Enkler (bitte einen hinweis in der Kontaktanfrage damit ich euch vom Spam unterscheiden kann)

D
Dolce Themenstarter:in
206 Beiträge seit 2009
vor 14 Jahren
DateTimePiker Weeknumber auslesen

Danke "ErfinderDesRades" für den Tip. Wesswegen ich die Kalenderwoche benötige ist, das ich Report Auswertungen vornehmen möchte. Um diese aber durchführen zu können, ist es hilfreich, wenn die dazu benötigten Daten wie hier zum Beispiel das Datum, auch gleich die Kalenderwochennummer mit in die Datenbank geschrieben wird.

Aber trotzdem Danke an alle für die Hinweise.

Gruss Dolce

Wer Rechtschreibfehler findet, darf sie behalten.

D
Dolce Themenstarter:in
206 Beiträge seit 2009
vor 14 Jahren
DateTimePiker Weeknumber auslesen

Hallo zusammen

Hat prima funktioniert. Hier noch den Link über welchen ich die Lösung gefunden habe:
Link: http://dotnet-snippets.de/dns/kalenderwoche-berechnen-SID260.aspx

Oder das Codebeispiel:


private void NumberOfWeek(DateTime dte)
		{
			#region WeekNr
			// Aktuelle Kultur ermitteln
			CultureInfo currentCulture = CultureInfo.CurrentCulture;

			// Aktuellen Kalender ermitteln
			Calendar calendar = currentCulture.Calendar;

			// Kalenderwoche über das Calendar-Objekt ermitteln
			int calendarWeek = calendar.GetWeekOfYear(dte,
			   currentCulture.DateTimeFormat.CalendarWeekRule,
			   currentCulture.DateTimeFormat.FirstDayOfWeek);

			// Ü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 z. B.
			// fälschlicherweise als KW 53 berechnet). 
			// Die Kalenderwoche wird dann auf 1 gesetzt
			if (calendarWeek > 52)
			{
				dte = dte.AddDays(7);
				int testCalendarWeek = calendar.GetWeekOfYear(dte,
				   currentCulture.DateTimeFormat.CalendarWeekRule,
				   currentCulture.DateTimeFormat.FirstDayOfWeek);
				if (testCalendarWeek == 2)
					calendarWeek = 1;
			}
			WeekNr = calendarWeek;

			// Das Jahr der Kalenderwoche ermitteln
			int year = dte.Year;
			if (calendarWeek == 1 && dte.Month == 12)
				year++;
			if (calendarWeek >= 52 && dte.Month == 1)
				year--;
			YearNr = year;
		}

Nochmals Danke an alle.

Gruss Dolce

Wer Rechtschreibfehler findet, darf sie behalten.