Vous pouvez essayer de vérifier la période nécessaire sur la façon dont il a exclu jours. Par exemple, nous avons besoin de prendre une période d'aujourd'hui à jour avant 7 jours. X (date de découverte) = Y (date maintenant) - Z (7 jours, période antérieure). Ensuite, nous essayons de vérifier cette période Z jour par jour [du 12/10 au 19/10]. En résultat, nous avons trouvé 2 jours et le diminuer à partir du jour Y.
Pour LINQ je nous pouvons écrire cette fonction:
private DateTime GetBeforeDateExcludeWeekends(DateTime FromDate, int Period)
{
DateTime tillBeforeDate = FromDate.Subtract(TimeSpan.FromDays(Period));
var weekendDayCnt =
Enumerable.Range(0, (FromDate - tillBeforeDate).Days + 1).Select(d => tillBeforeDate.AddDays(d))
.Where(day => day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday)
.Count();
return FromDate.Subtract(TimeSpan.FromDays(Period + weekendDayCnt));
}
Désolé pour mon mauvais anglais. =)
s'il vous plaît nous montrer ce que vous avez fatigué par vous-même .. ce n'est pas un site de fournisseur de services de code ... – MethodMan
Vérifiez la méthode 'DateTime.AddDays' et la propriété' DateTime.DayOfWeek'. Avec cela et une boucle, vous devriez être en mesure de générer les résultats souhaités. – juharr