Hallo zusammen,
ich möchte gerne unter .NET die Anzahl der Wochenend-Tage (Sa/So) innerhalb einer vorgegebenen Zeitspanne ermitteln. Beipiel: 01.08. - 30.09. = 17 WE-Tage
Hierzu müsste man ja nur eine Schleife über den Start- bis zum End-Zeitpunkt bauen und den Weekday (=1, =7) counten.
Leider haperts bei mir mit der Schleife.
Kann mir jemand helfen???
Vielen Dank und Gruß
Marco
Hallo Marco,
zum Beispiel so (VB):
Dim laufDatum As New DateTime(2006, 8, 1)
Dim endDatum As New DateTime(2006, 9, 30)
Dim wochenendTage As Integer
Do Until laufDatum \> endDatum
If laufDatum.DayOfWeek = DayOfWeek.Saturday Or laufDatum.DayOfWeek = DayOfWeek.Sunday Then
wochenendTage += 1
End If
laufDatum = laufDatum.AddDays(1)
Loop
MessageBox.Show(wochenendTage.ToString & " Wochenendtage")
Grüße
Thomas
Hallo,
vielen Dank für den Ansatz, ich habe es jetzt ein bisschen anders gelöst:
'Differenz Start Heute
DifferenzTage = Date.Now.Subtract(StartDatum).Days
function RechneWETage(ByVal StartDatum as Date, ByVal DifferenzTage as Integer)
Dim count As Integer
Dim i As Integer
For i = 1 To DifferenzTage
If Weekday(StartDatum) = 1 Then count = count + 1
If Weekday(StartDatum) = 7 Then count = count + 1
StartDatum = DateAdd(DateInterval.Day, 1, StartDatun)
Next
WeekendDays = count
Return WeekendDays
End Function
Ohne While mit einer einfachen For-Schleife
Trotzdem Danke
Gruß
Marco