首頁 > 後端開發 > C++ > 如何產生兩個日期之間的綜合日期清單以進行多系列圖形對齊?

如何產生兩個日期之間的綜合日期清單以進行多系列圖形對齊?

Linda Hamilton
發布: 2025-01-10 21:01:45
原創
253 人瀏覽過

How Can I Generate a Comprehensive Date List Between Two Dates for Multi-Series Graph Alignment?

對齊多系列圖表:產生完整的日期範圍

建立多系列圖表通常會帶來挑戰:不同的資料系列在同一時間範圍內可能具有不一致的資料間隔,導致圖表不對齊。 為了解決這個問題,我們需要一個涵蓋整個範圍的完整日期列表,無論數據差距如何。這可確保正確對齊並允許對遺失的資料點進行零填充。

方法一:優雅的 LINQ 解

這種簡潔的 LINQ 方法可以有效地產生所需的日期清單:

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

此程式碼首先建立一個整數序列,表示距開始日期的日期偏移量。然後,它將每個偏移量加到開始日期,產生一個包含指定範圍內的每個日期的陣列。

方法二:迭代For循環

或者,for 循環提供了更明確的逐步方法:

<code class="language-csharp">var dates = new List<DateTime>();

for (var dt = start; dt <= end; dt = dt.AddDays(1))
{
   dates.Add(dt);
}</code>
登入後複製

此循環每天迭代,將每個日期加入清單中,直到到達結束日期。

用預設值填滿空白

要處理遺失的數據,請使用字典將完整範圍內的每個日期對應到其對應的值(如果日期不存在,則使用預設值):

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

這裡,fullDates是完整的日期清單。 如果 timeSeries 包含給定日期的值,則使用該值;否則,defaultValue 被指派。 這可確保所有日期都出現在最終系列中。

以上是如何產生兩個日期之間的綜合日期清單以進行多系列圖形對齊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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