首頁 > 後端開發 > C++ > 如何在 C# 中產生兩個給定日期之間的日期陣列?

如何在 C# 中產生兩個給定日期之間的日期陣列?

Patricia Arquette
發布: 2025-01-10 21:12:41
原創
798 人瀏覽過

How Can I Generate an Array of Dates Between Two Given Dates in C#?

產生指定日期範圍內的日期陣列

在某些情況下,為了在多系列圖表中準確表示數據,需要產生指定範圍內所有日期的完整清單。例如,當圖表中不同資料系列的日期範圍不同時,由於X軸時間軸的不一致,會導致圖表傾斜。

有多種方法可以建立給定日期範圍內的所有日期的陣列或清單。兩種常用的方法包括:使用LINQ來提高簡潔性和可讀性,以及使用for迴圈來實現更明確的控制。

LINQ方法

<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days)
          .Select(offset => start.AddDays(offset))
          .ToArray();</code>
登入後複製

這種方法中,Range方法產生一個從0到日期範圍內的總天數的數字序列,Select方法將每個數字轉換為日期,方法是將其加到起始日期。結果是一個包含指定範圍內的所有日期的陣列。

For循環方法

<code class="language-csharp">var dates = new List<DateTime>();
for (var dt = start; dt <= end; dt = dt.AddDays(1)) {
    dates.Add(dt);
}</code>
登入後複製

此方法使用for迴圈將指定範圍內的每個日期遞增地新增至清單中。循環持續到達到結束日期為止,確保包含所有日期。

使用預設值填入缺失值

為了處理某些系列可能缺少特定日期資料的場景,可以考慮使用預設值填入這些日期。這可以透過使用字典來實現,將每個日期與其對應的值關聯起來,如果不存在值,則使用預設值。

<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsKey(date) ? timeSeries[date] : defaultValue);</code>
登入後複製

在這個例子中,字典將每個日期對應到其值,對於時間序列中不存在的日期,則分配一個預設值。透過這種方法,結果資料集保持一致的日期範圍,並為缺失的資料點填入預設值。

以上是如何在 C# 中產生兩個給定日期之間的日期陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板