ホームページ > バックエンド開発 > C++ > 複数系列のグラフを調整するために 2 つの日付間の包括的な日付リストを生成するにはどうすればよいですか?

複数系列のグラフを調整するために 2 つの日付間の包括的な日付リストを生成するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-10 21:01:45
オリジナル
255 人が閲覧しました

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

複数系列グラフの整列: 完全な日付範囲の生成

複数系列のグラフの作成には、多くの場合、課題が伴います。異なるデータ系列では、同じ時間枠内でデータ間隔が一貫していない可能性があり、グラフの位置がずれてしまう可能性があります。 これを解決するには、データのギャップに関係なく、範囲全体にわたる完全な日付リストが必要です。これにより、適切な位置合わせが保証され、欠落したデータ ポイントのゼロ パディングが可能になります。

方法 1: エレガントな LINQ ソリューション

この簡潔な LINQ アプローチは、目的の日付リストを効率的に生成します。

<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days)
          .Select(offset => start.AddDays(offset))
          .ToArray();</code>
ログイン後にコピー

このコードはまず、開始日からの日のオフセットを表す一連の整数を作成します。次に、各オフセットを開始日に追加し、指定された範囲内のすべての日付を含む配列を生成します。

方法 2: 反復 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 が割り当てられます。 これにより、すべての日付が最終シリーズで表現されるようになります。

以上が複数系列のグラフを調整するために 2 つの日付間の包括的な日付リストを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート