Maison >développement back-end >C++ >Comment puis-je générer un tableau de dates entre deux dates données en C# ?
Générer un tableau de dates dans la plage de dates spécifiée
Dans certains cas, afin de représenter avec précision les données dans un graphique multi-séries, il est nécessaire de générer une liste complète de toutes les dates dans une plage spécifiée. Par exemple, lorsque les plages de dates des différentes séries de données du graphique sont différentes, le graphique sera incliné en raison de l'incohérence de l'axe temporel de l'axe X.
Il existe plusieurs façons de créer un tableau ou une liste de toutes les dates dans une plage de dates donnée. Deux méthodes courantes incluent l'utilisation de LINQ pour améliorer la simplicité et la lisibilité, et l'utilisation de boucles for pour obtenir un contrôle plus clair.
Méthode LINQ
<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray();</code>
Dans cette méthode, la méthode Range
génère une séquence de nombres de 0 au nombre total de jours dans la plage de dates, et la méthode Select
convertit chaque nombre en date en l'ajoutant à la date de début. Le résultat est un tableau contenant toutes les dates de la plage spécifiée.
Méthode de boucle For
<code class="language-csharp">var dates = new List<DateTime>(); for (var dt = start; dt <= end; dt = dt.AddDays(1)) { dates.Add(dt); }</code>
Cette méthode utilise une boucle for pour ajouter progressivement chaque date de la plage spécifiée à la liste. La boucle continue jusqu'à ce que la date de fin soit atteinte, garantissant que toutes les dates sont incluses.
Remplissez les valeurs manquantes en utilisant les valeurs par défaut
Pour gérer les scénarios dans lesquels certaines séries peuvent manquer de données pour des dates spécifiques, pensez à remplir ces dates avec des valeurs par défaut. Ceci peut être réalisé en utilisant un dictionnaire, en associant chaque date à sa valeur correspondante et en utilisant une valeur par défaut si aucune valeur n'existe.
<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsKey(date) ? timeSeries[date] : defaultValue);</code>
Dans cet exemple, le dictionnaire mappe chaque date à sa valeur, et pour les dates qui n'existent pas dans la série chronologique, une valeur par défaut est attribuée. Avec cette approche, l'ensemble de données résultant conserve une plage de dates cohérente et remplit les valeurs par défaut pour les points de données manquants.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!