ホームページ > バックエンド開発 > C++ > C# で指定された 2 つの日付間の日付の配列を生成するにはどうすればよいですか?

C# で指定された 2 つの日付間の日付の配列を生成するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-10 21:12:41
オリジナル
799 人が閲覧しました

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

指定された日付範囲内の日付配列を生成します

場合によっては、複数系列のグラフでデータを正確に表すために、指定された範囲内のすべての日付の完全なリストを生成する必要があります。たとえば、グラフ内の異なるデータ系列の日付範囲が異なる場合、X 軸の時間軸の不一致によりグラフが傾きます。

特定の日付範囲内のすべての日付の配列またはリストを作成する方法は複数あります。一般的な 2 つの方法には、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# で指定された 2 つの日付間の日付の配列を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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