c#中的日期计算用于特定的天数

时间:2014-06-28 11:41:24

标签: c# date datetime

我有similar SO question用于“Bussines days”的日期计算。
最后我使用了here描述的机制。
但这是特殊情况。

更通用的方法呢?
如何仅考虑自定义集中的天数nMn-Tu-We或其他任何日期,将当前日期的特定数量(Sa-Su-Me)添加到当前日期。

Test data 1:
Date: (28-jun-2014).
Days to add: 10
Days type: Mn - Th - Fr
Answer: 21-july-2014

Test data 2:
Date: (28-jun-2014).
Days to add: 5
Days type: Tu - We
Answer: 15-july-2014

1 个答案:

答案 0 :(得分:2)

从链接中指定的一个我可以在这里进行一些修改: -

对于测试1: -

DayOfWeek[] daysOfWeek= { DayOfWeek.Monday, DayOfWeek.Thursday, DayOfWeek.Friday};
DateTime end = Enumerable.Range(0, int.MaxValue)
            .Select(i => DateTime.Today.AddDays(i))
            .Where(d => daysOfWeek.Contains(d.DayOfWeek))
            .Take(10)
            .Last();

答案: - 21-07-2014 00:00:00

对于测试2: -

DayOfWeek[] daysOfWeek= { DayOfWeek.Tuesday, DayOfWeek.Wednesday};
DateTime end = Enumerable.Range(0, int.MaxValue)
            .Select(i => DateTime.Today.AddDays(i))
            .Where(d => daysOfWeek.Contains(d.DayOfWeek))
            .Take(5)
            .Last();

答案: - 15-07-2014 00:00:00