C# 将TimeDate.ElaspedDays中的每一天添加到列表中

C# 将TimeDate.ElaspedDays中的每一天添加到列表中,c#,list,datetime,C#,List,Datetime,我不熟悉使用DateTime,但我想知道它是否能够将两点之间的每一天动态添加到列表中 例如,我的代码如下所示: { startTime = new DateTime(startYear, startMonth, startDay); endTime = new DateTime(endYear, endMonth, endDay); TimeSpan elapsed = endTime.Subtract(startTime); sta

我不熟悉使用DateTime,但我想知道它是否能够将两点之间的每一天动态添加到列表中

例如,我的代码如下所示:

{
  startTime = new DateTime(startYear, startMonth, startDay);
  endTime = new DateTime(endYear, endMonth, endDay);        
  TimeSpan elapsed = endTime.Subtract(startTime);               
  startString = startDay.ToString();
  elapsedString = elapsed.TotalDays.ToString();
}

通过这个,我可以返回两点之间的总天数。但是,
appeased.TotalDays.ToString()仅返回两点之间的总天数。我想知道的是,是否有可能每天在两点之间返回并将其放入列表中

试试看,它应该能起作用:

int totalDays = endTime.Subtract(startTime).TotalDays as int;
List<DateTime> dates = new List<DateTime>(totalDays + 1); // using this constructor will make filling in the list more performant

dates.Add(startTime); // since you mentionned start and end should be included

for (var i = 1; i < totalDays; i++)
{
    dates.Add(startTime.AddDays(i));
}

dates.Add(endTime);
inttotaldays=endTime.Subtract(startTime).totalDays为int;
列表日期=新列表(总天数+1);//使用此构造函数将使填写列表更有效
日期。添加(开始时间);//既然你提到开始和结束应该包括在内
对于(var i=1;i
您可以使用
可枚举范围执行此操作

using System;
using System.Linq;

var totalDays = (int)endTime.Subtract(startTime).TotalDays;
var days = Enumerable.Range(0, totalDays)
                     .Select(n => startTime.AddDays(n))
                     .ToList();

开始日期和结束日期都包含在
天数
列表中。首先将范围设置为从零开始,最后将
n
单独保留。

我认为您可以使用

list<int>Dates = new List<int>();

for(DateTime date = StartDate; date.Date <= EndDate.Date; date = date.AddDays(1))
{
  Dates.Add(date.Date);
}
listDates=newlist();

对于(DateTime date=StartDate;date.date是指包括开始日期和结束日期吗?很好的信息,你可能应该把它放在你的主要帖子正文中。我最近的编辑反映了这一变化。从来没有想过使用
for
日期时间
:)老实说,我参考了stackoverflow链接,因此对他表示感谢