Entwickler-Ecke
WPF / Silverlight - Anzahl der Arbeitstage eines Monats feststellen?
dark-destination1988 - Fr 10.06.11 09:16
Titel: Anzahl der Arbeitstage eines Monats feststellen?
Hallo Gemeinde.
benötige mal eure Hilfe. Und zwar bin ich am entwickeln einer Silverlight-Applikation. Für diese benötige ich die Arbeitstage eines Monats. Gibt es da eventuell schon vorgefertigte Funktionen? Feiertage will ich zunächst einmal herauslassen.
meine idee wäre ja den Monat durchzugehen und abzufragen ob der Tag der woche Mo-Fr ist--> dementsprechend einen Counter erhöhen.
Aber das erscheint mir etwas von hinten durch die Brust geschossen.
traceurmicha - Fr 10.06.11 11:42
Hey dark-destination1988,
Wenn ich dich richtig verstanden habe weiß ich wie du das lösen kannst.
Mit der Datetime Funktion kannst du prüfen wie viele Tage ein Monat hat und auch überprüfen was das für ein tag ist.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| DateTime dt = new DateTime(); int i = DateTime.DaysInMonth(jahr,monat);
for (int counter = 1; counter <= i; counter++) { dt = new DateTime(jahr, monat, counter); if (dt.ToString("ddd") != "Sa" && dt.ToString("ddd") != "So") { zaehler++; } } |
Ich hoffe ich konnte dir helfen
thepaine91 - Fr 10.06.11 11:44
Da fehlen aber die Feiertage.
EDIT:
Sehe grade das er gesagt hat diese können rausgelassen werden. Mein Fail!
Th69 - Fr 10.06.11 12:10
Hallo traceurmicha,
anstatt der ToString()-Abfrage, solltest du besser direkt die DayOfWeek-Eigenschaft benutzen:
C#-Quelltext
1:
| if (dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday) |
(und natürlich den richtigen Operator ;-))
traceurmicha - Fr 10.06.11 12:13
Hey Th69,
Der Fehler von mir wurde korrigiert, da waren die Finger schneller als das Hirn^^
Das mit DayOfWeek kannte ich auch noch nicht, werd meine Funktion gleich mal umbauen^^
dark-destination1988 - Fr 10.06.11 14:41
nagut, dachte zwar das es da was simpleres gibt, aber das ist besser als nicht,
danke an euch
thepaine91 - Fr 10.06.11 15:26
Und wo bleibt dann learning by failing?
pdelvo - Mo 08.08.11 01:42
Das sieht mir alles ein bisschen hässlich aus. hier mal meine linq Variante(hab ich mal schnell hingeklatscht^^)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| public static int GetWorkingDays(int year, int month) { int start = (int)new DateTime(year, month, 1).DayOfWeek; return (from int i in Enumerable.Range(1, DateTime.DaysInMonth(year, month)) where (start + i) % 7 != 0 && (start + i) % 7 != 6 select i).Count(); } |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!