Comment calculer la différence entre deux dates en C#
-
Calculer la différence entre deux dates en C# en utilisant l’opérateur
-
-
Calculer la différence entre deux dates en C# en utilisant la méthode
DateTime.Substract
Dans cet article, nous explorerons différentes méthodes de calcul de la différence entre deux dates en C#. Nous utiliserons la structure DateTime
pour la représentation de la date et la structure TimeSpan
pour stocker le résultat.
Nous utiliserons la définition de date suivante, en spécifiant un instant de la date en utilisant le constructeur DateTime
.
DateTime sample_date = new DateTime(2010, 6, 14);
Comme vous pouvez le remarquer, les éléments de la date dans la déclaration incluent l’année, le mois et le jour.
Maintenant, regardons les différentes méthodes pour calculer la différence entre deux jours en termes de nombre de jours.
Calculer la différence entre deux dates en C# en utilisant l’opérateur -
La plus simple de la solution consiste à soustraire les deux dates à l’aide de l’opérateur -
. Comme les objets sont du même type de données DateTime
, ils peuvent être directement soustraits. Le code suivant décrit cette méthode.
using System;
public class Sample {
public static void Main() {
DateTime date_1 = new DateTime(2019, 02, 12);
DateTime date_2 = new DateTime(2020, 04, 10);
/*Substraction (minus) of same data types yields difference in days*/
Console.WriteLine("Difference in days: " + (date_2 - date_1).Days);
}
}
Production:
Difference in days : 423
Calculer la différence entre deux dates en C# en utilisant la méthode DateTime.Substract
La méthode DateTime.Subtract
est un autre moyen efficace d’y parvenir. Il retourne la différence entre deux dates et le résultat peut être stocké dans le type de données TimeSpan
.
using System;
public class Sample {
public static void Main() {
DateTime date_1 = new DateTime(2019, 02, 12);
DateTime date_2 = new DateTime(2020, 04, 10);
TimeSpan Diff_dates = date_2.Subtract(date_1);
Console.WriteLine("Difference in days: " + Diff_dates.Days);
}
}
Production:
Difference in days : 423
La structure DateTime
peut également être utilisée pour spécifier l’heure de la journée avec la date. Dans ce cas, lors de l’utilisation de la méthode DateTime.Subtract
, assurez-vous que les dates sont dans les mêmes fuseaux horaires. Sinon, le résultat inclura la différence entre les fuseaux horaires.
De plus, en utilisant le double ensemble de propriétés de la classe TimeSpan
, nous pouvons également extraire plus d’informations si nécessaire. Comme dans l’exemple de code ci-dessous, nous avons utilisé le préfixe Total
- TotalDays
, pour obtenir le résultat en valeurs fractionnaires.
using System;
public class Sample {
public static void Main() {
/*Definations include time of day */
DateTime date_1 = new DateTime(2019, 02, 12, 8, 0, 0);
DateTime date_2 = new DateTime(2020, 04, 10, 12, 0, 0);
TimeSpan Diff_dates = date_2.Subtract(date_1);
Console.WriteLine("Difference in Days = " + Diff_dates.Days);
Console.WriteLine("Exact timespan in Days = " + Diff_dates.TotalDays);
}
}
Production:
Difference in Days = 423 Exact timespan in Days = 423.166666666667
Lors de la finalisation de la méthode appropriée à votre utilisation, notez que la méthode d’opérateur -
ne prend pas en compte le facteur de fuseau horaire des dates. Donc, si les dates que vous utilisez spécifient des fuseaux horaires, la méthode DateTime.Subtract
devient le choix évident.