Ich versuche, eine Liste der Daten auf den folgenden Bedingungen zu generieren:Generieren Liste der Daten der folgenden Arbeitswoche
Wenn heute Mittwoch ist und nach 06.00 OR ist es nach Mittwoch, dann generiere die nächste Arbeitswoche.
Else generieren die aktuelle Arbeitswoche.
Die Arbeitswoche wird als Montag-Freitag definiert.
So weit von googeln und zieht zwei Antworten von hier, habe ich diese Erweiterung, die mir die nächsten auftretenden bestimmten Tag auf den aktuellen Tag basiert gibt:
public static DateTime Next(this DateTime dt, DayOfWeek startoOfWeek)
{
var start = (int)dt.DayOfWeek;
var target = (int)startoOfWeek;
if (target <= start)
{
target += 7;
}
return dt.AddDays(target - start);
}
Gezogen von: How to get the date of the next Sunday?
Und ich auch haben die folgenden Arbeitstage als:
var daysOfWeek = Enum.GetValues(typeof(DayOfWeek))
.OfType<DayOfWeek>()
.Skip(1)
.TakeWhile(day => day != DayOfWeek.Saturday)
.ToList();
ich gehe, es zu testen so:
foreach (var day in daysOfWeek)
{
Debug.WriteLine(DateTime.Now.Next(day).Date.ToString(CultureInfo.CurrentCulture));
}
Seit heute Sonntag ist 4/24/16, ich habe die richtige Ausgabe für die nächste Woche:
> 4/25/2016 0:00:00
> 4/26/2016 0:00:00
> 4/27/2016 0:00:00
> 4/28/2016 0:00:00
> 4/29/2016 0:00:00
Aber wenn heute waren sagen Mittwoch 4/27/16, dann bekomme ich:
> 5/2/2016 0:00:00
> 5/3/2016 0:00:00
> 5/4/2016 0:00:00
> 4/28/2016 0:00:00
> 4/29/2016 0:00:00
ich bin immer näher, aber ich frage mich, ob es einen einfacheren Weg, als das, was ich bereits getan haben oder wenn es eine Antwort gibt bereits.
Sie dies nicht tun scheinen die Zeitkomponente zu berücksichtigen –