Heim >Backend-Entwicklung >C++ >Wie kann ich eine umfassende Datumsliste zwischen zwei Datumsangaben für die Diagrammausrichtung mehrerer Serien erstellen?
Ausrichten von Diagrammen mit mehreren Reihen: Generieren eines vollständigen Datumsbereichs
Das Erstellen von Diagrammen mit mehreren Reihen stellt oft eine Herausforderung dar: Verschiedene Datenreihen können innerhalb desselben Zeitrahmens inkonsistente Datenintervalle aufweisen, was zu falsch ausgerichteten Diagrammen führt. Um dieses Problem zu lösen, benötigen wir eine vollständige Datumsliste, die den gesamten Bereich abdeckt, unabhängig von Datenlücken. Dies gewährleistet eine ordnungsgemäße Ausrichtung und ermöglicht das Auffüllen fehlender Datenpunkte mit Nullen.
Methode 1: Elegante LINQ-Lösung
Dieser prägnante LINQ-Ansatz generiert effizient die gewünschte Datumsliste:
<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray();</code>
Dieser Code erstellt zunächst eine Folge von Ganzzahlen, die die Tagesversätze vom Startdatum darstellen. Anschließend wird jeder Offset zum Startdatum addiert, wodurch ein Array entsteht, das jedes Datum innerhalb des angegebenen Bereichs enthält.
Methode 2: Iterative For-Schleife
Alternativ bietet eine for
-Schleife einen expliziteren, schrittweisen Ansatz:
<code class="language-csharp">var dates = new List<DateTime>(); for (var dt = start; dt <= end; dt = dt.AddDays(1)) { dates.Add(dt); }</code>
Diese Schleife wiederholt sich Tag für Tag und fügt jedes Datum einer Liste hinzu, bis das Enddatum erreicht ist.
Lücken mit Standardwerten füllen
Um mit fehlenden Daten umzugehen, verwenden Sie ein Wörterbuch, um jedes Datum im gesamten Bereich seinem entsprechenden Wert zuzuordnen (oder einem Standardwert, wenn das Datum fehlt):
<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsKey(date) ? timeSeries[date] : defaultValue);</code>
Hier fullDates
ist die umfassende Terminliste. Wenn timeSeries
einen Wert für ein bestimmtes Datum enthält, wird dieser Wert verwendet; andernfalls wird das defaultValue
zugewiesen. Dadurch wird sichergestellt, dass alle Termine in der Abschlussserie vertreten sind.
Das obige ist der detaillierte Inhalt vonWie kann ich eine umfassende Datumsliste zwischen zwei Datumsangaben für die Diagrammausrichtung mehrerer Serien erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!