获取C#日期列表中的总天数
本文关键字:日期 列表 获取 | 更新日期: 2023-09-27 18:30:07
我只想在日期列表中获得总天数。这是我的代码,它将返回10天,应该打印4天左右。
static void Main(string[] args)
{
//Initializes new List of DataTime Object.
List<DateTime> Dates = new List<DateTime>();
//Fills the List of DateTime Object.
for (int i = 0; i < 5; i++)
{
Dates.Add(DateTime.Now.AddDays(i));
//Adds new DataTime Object in the list of DateTime Object.
Thread.Sleep(1000); //Stop filling dates for one second.
}
//Prints the List of DataTime Object.
for (int i = 0; i <5 ; i++)
{
Console.WriteLine(Dates[i]);
}
avgDate(Dates);
}
public static void avgDate(List<DateTime> Dates) {
long totalTicks = 0;
string avgticks = "";
TimeSpan days = new TimeSpan();
for (int i = 0; i < Dates.Count; i++)
{
for (int j = 1; j < Dates.Count; j++)
{
days += (Dates[j] - Dates[i]);
}
}
Console.WriteLine(days.TotalDays);
Console.ReadLine();`
}
既然你的日期在列表中,为什么有些linq函数不能工作?
days = Dates.Max() - Dates.Min();
Console.WriteLine(days.TotalDays);
我很确定给定A<B<C、
(B-A)+(C-B)=C-A
一个循环就足够了!编辑:我简化了更多。
public static void avgDate(List<DateTime> Dates) {
long totalTicks = 0;
string avgticks = "";
TimeSpan days = new TimeSpan();
for (int i = 1; i < Dates.Count; i++)
{
days += (Dates[i] - Dates[i-1]);
}
Console.WriteLine(days.TotalDays);
Console.ReadLine();`