我有一个表单,用户可以在其中输入起始日期和截止日期,当提交表单时,我将生成一个 excel 文件,其中包含指定的起始日期中的周数范围。
例如,如果用户输入:1/8/2018 - 15/8/2018
excel 文件将包含以下列:
——1/8/2018 to 7/8/2018
——8/8/2018 to 14/8/2018
——15/8/2018 to 21/8/2018
我怎样才能实现按周分割日期范围
感谢任何帮助。
我的想法是:您将 a 累积chunkDay
到开始日期(在您的情况下,从 1 到 7 是 6 天)直到日期结束。小提琴作品:https : //dotnetfiddle.net/rrN8Yd
它返回上周作为您的要求 15/8/2018 to 21/8/2018
public static IEnumerable<Tuple<DateTime, DateTime>> Split(DateTime start, DateTime end, int chunk)
{
DateTime chunkEnd;
while ((chunkEnd = start.AddDays(chunk)) < end)
{
yield return Tuple.Create(start, chunkEnd);
start = chunkEnd.AddDays(1);
}
yield return Tuple.Create(start, start.AddDays(chunk));
}
有了这个输入
foreach( var t in Split(new DateTime(2018,8,1), new DateTime(2018,8,17),6)){
Console.WriteLine(t.Item1.ToString() + " " + t.Item2.ToString());
}
我有输出
8/1/2018 12:00:00 AM 8/7/2018 12:00:00 AM
8/8/2018 12:00:00 AM 8/14/2018 12:00:00 AM
8/15/2018 12:00:00 AM 8/21/2018 12:00:00 AM
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句