小编典典

创建两个日期之间所有日期的数组或列表

all

我正在沿 X 轴生成带有日期的多系列图表。

问题在于,并非图表中的所有系列在日期范围内都具有相同的日期。这意味着如果我选择 2 月 1 日至 4 月 30 日,则一个系列的数据可能从 2 月 1
日开始,但仅持续到 3 月底,但另一个系列可能具有整个日期范围的数据。

这会扭曲我需要创建的图表。去吧,给定查询开始时采用的日期范围,我想生成一个日期列表并填充要绘制的数据,对于那些没有数据的日期,用 0 填充这些系列。


阅读 80

收藏
2022-07-29

共1个答案

小编典典

林克:

Enumerable.Range(0, 1 + end.Subtract(start).Days)
          .Select(offset => start.AddDays(offset))
          .ToArray();

对于循环:

var dates = new List<DateTime>();

for (var dt = start; dt <= end; dt = dt.AddDays(1))
{
   dates.Add(dt);
}

编辑:至于在时间序列中使用默认值填充值,您可以枚举整个日期范围内的所有日期,并直接从序列中选择日期值(如果存在),否则为默认值。例如:

var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsDate(date) 
                                               ? timeSeries[date] : defaultValue);
2022-07-29