2010-08-12 74 views
1

我正在使用ASP.Net MVC2。我想知道是否有计算重复日期的公式?所以从我的客户端我选择日期并使用ajax.post发送给控制器。我期待的结果将是,像这样的例子:是否有计算复发的公式

的maxDate是当今 持续时间为每周1天9月30日 的currentdate是

所以输出将 aug12-aug14 aug19-aug21 aug26-28直到九月底

回答

2
Enumerable.Range(0, int.MaxValue) 
    .Select(i => new 
        { 
         start = DateTime.Today.AddDays(7*i), 
         end = DateTime.Today.AddDays(7*i + 2) 
        }) 
    .TakeWhile(d => d.end <= new DateTime(2010, 9, 30)) 

除非你在开始和结束(含)之间寻找日期:

Enumerable.Range(0, int.MaxValue) 
    .SelectMany(i => new[] 
         { 
          DateTime.Today.AddDays(7*i), 
          DateTime.Today.AddDays(7*i + 1), 
          DateTime.Today.AddDays(7*i + 2) 
         }) 
    .TakeWhile(d => d <= new DateTime(2010, 9, 30))