C# 将TimeDate.ElaspedDays中的每一天添加到列表中
我不熟悉使用DateTime,但我想知道它是否能够将两点之间的每一天动态添加到列表中 例如,我的代码如下所示: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
{
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链接,因此对他表示感谢