Entwickler-Ecke

WinForms - Vom MonthCalendar markierten Tag den Wochentag auslesen


okrim - Di 26.11.13 00:36
Titel: Vom MonthCalendar markierten Tag den Wochentag auslesen
Hallo an alle,

bräuchte dringend Hilfe, habe einen monthcalendar1 und würde gerne in einem label1 den Wochentag in deutsch angezeigt bekommen von dem Tag den ich markiert habe.

Von dem aktuellen Datum habe ich es in Deutsch hinbekommen.

C#-Quelltext
1:
2:
            string wochentag = DateTime.Now.ToString("ddd");
            label1.Text = wochentag;


Auch den markierten Tag in Englisch bekomme ich hin

C#-Quelltext
1:
2:
3:
            string selekt_datum = monthCalendar1.SelectionStart.ToShortDateString();
            DateTime date = DateTime.ParseExact(selekt_datum, "dd.MM.yyyy", CultureInfo.InvariantCulture);
            label1.Text = date.DayOfWeek.ToString();


Aber wie bekomme ich den markierten Tag in Deutsch angezeigt?

Würde mich freuen wenn mir da einer von euch weiter helfen könnte und bedanke mich schon mal recht Herzlich im Voraus!!!
Gruß Mirko


jaenicke - Di 26.11.13 07:47

Dokumentation [http://msdn.microsoft.com/de-de/library/system.datetime.dayofweek.aspx] hat folgendes geschrieben:
Rufen Sie zum Abrufen einer Zeichenfolge, die den lokalisierten Namen eines Wochentags für ein bestimmtes Datum darstellt, eine der Überladungen der ToString-Methoden auf, die einen format-Parameter enthält, und übergeben Sie diesen an die benutzerdefinierte Formatzeichenfolge ddd oder dddd. Ausführliche Informationen finden Sie unter Gewusst wie: Extrahieren des Wochentags aus einem bestimmten Datum [http://msdn.microsoft.com/de-de/library/bb762911.aspx].


Ralf Jansen - Di 26.11.13 10:40

Worin liegt der Sinn aus dem DateTime im Monthkalender einen string zu machen und dann wieder ein DateTime? Es ist schon ein DateTime.


okrim - Di 26.11.13 21:29

Hallo Ralf,

den string mach ich weil ich das selektierte Datum auch an einer anderen Stelle noch benutze und da ich es nicht besser kann, würde mich freuen wenn du mir zeigen könntest wie du es machen würdest, bin über sämtliche Verbesserungsvorschläge froh.


Hallo jaenicke,

danke für deinen Tipp, aber auf dieser Seite war ich auch schon, nur blick ich es nicht ich habe schon Stundenlang gegooglet, aber hab es nicht hin bekommen, darum habe ich mich an euch gewandt, ich bin noch totaler Neuling was das Programmieren betrifft, daher würde ich mich freuen wenn ihr mir helfen könntet.

Gruß Mirko


Ralf Jansen - Mi 27.11.13 00:23

Zitat:

C#-Quelltext
1:
string wochentag = DateTime.Now.ToString("ddd");                    


Du weißt das dies dir den Wochentag liefert. DateTime.Now ist ein DateTime genauso wie monthCalendar1.SelectionStart ein DateTime ist. Also sollte man doch daraus schließen
können das du das genauso machen kannst.


C#-Quelltext
1:
string wochentag = monthCalendar1.SelectionStart.ToString("ddd");                    

Das ist aber von den aktuellen Systemeinstellungen abhängig. Wenn du immer deutsch haben willst auch wenn Windows z.B. auf Englisch eingestellt ist dann musst du die gewünschte Kultur mitgeben. So ähnlich wie du das beim ParseExact gemacht hast mit der invarianten Kultur.


C#-Quelltext
1:
string wochentag = monthCalendar1.SelectionStart.ToString("ddd", CultureInfo.CreateSpecificCulture("de"))                    


okrim - Mi 27.11.13 19:30

Hallo Ralf,

vielen vielen Dank, das war ja ganz einfach und ich habe Stundenlang gegooglet, ist halt alles ganz einfach wen man weis wie es geht :D


jaenicke - Mi 27.11.13 20:52

Da muss man nicht viel wissen, mit ein wenig Erfahrung liest du das selbst aus der Dokumentation heraus. ;-)