Comment calculer la différence entre deux dates en C#

Puneet Dobhal 12 octobre 2023
  1. Calculer la différence entre deux dates en C# en utilisant l’opérateur -
  2. Calculer la différence entre deux dates en C# en utilisant la méthode DateTime.Substract
Comment calculer la différence entre deux dates en C#

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.

Article connexe - Csharp DateTime