Question Calculer la différence entre deux dates (nombre de jours)?


Je vois que cette question a été répondue pour Java, JavaScript, et PHP, mais pas C #. Alors, comment peut-on calculer le nombre de jours entre deux dates en C #?


815
2017-10-22 13:47


origine


Réponses:


En supposant StartDate et EndDate sont de type DateTime:

(EndDate - StartDate).TotalDays

1531
2017-10-22 13:48



Utilisez l'objet TimeSpan qui est le résultat de la soustraction de date:

DateTime d1;
DateTime d2;
return (d1 - d2).TotalDays;

112
2017-10-22 13:49



La meilleure réponse est correcte, cependant, si vous voulez seulement des jours entiers comme un int et sont heureux de renoncer à la composante de temps de la date, puis envisager:

(EndDate.Date - StartDate.Date).Days

Encore en supposant que StartDate et EndDate sont de type DateTime.


66
2017-08-27 03:33



Je pense que cela fera ce que vous voulez:

DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(-1);

TimeSpan t = d1 - d2;
double NrOfDays = t.TotalDays;

40
2017-10-22 13:49



DateTime xmas = new DateTime(2009, 12, 25);
double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;

31
2017-10-22 13:49



Dans le cas où quelqu'un veut un nombre de jours entiers comme un double (a, b de type DateTime):

 (a.Date - b.Date).TotalDays

14
2018-06-13 14:41



// Difference in days, hours, and minutes.

TimeSpan ts = EndDate - StartDate;

// Difference in days.

int differenceInDays = ts.Days; // This is in int
double differenceInDays= ts.TotalDays; // This is in double

// Difference in Hours.
int differenceInHours = ts.Hours; // This is in int
double differenceInHours= ts.TotalHours; // This is in double

// Difference in Minutes.
int differenceInMinutes = ts.Minutes; // This is in int
double differenceInMinutes= ts.TotalMinutes; // This is in double

Vous pouvez également obtenir la différence en secondes, millisecondes et ticks.


7
2017-11-17 06:30



Tu peux essayer ça

EndDate.Date.Subtract(DateTime.Now.Date).Days

6
2018-06-11 06:18



Pour a et b comme deux DateTime les types:

DateTime d = DateTime.Now;
DateTime c = DateTime.Now;
c = d.AddDays(145);
string cc;
Console.WriteLine(d);
Console.WriteLine(c);
var t = (c - d).Days;
Console.WriteLine(t);
cc = Console.ReadLine();

1
2017-07-10 19:16



Pour les débutants comme moi qui trébucheront sur ce petit problème, dans une ligne simple, avec la conversion de l'échantillon en int:

int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);

Cela calcule le nombre total de jours à compter d'aujourd'hui (DateTime.UtcNow.Date) jusqu'à la date souhaitée (myDateTime.Date).

Si myDateTime est hier, ou une date plus ancienne qu'aujourd'hui, cela donnera un résultat positif (+) entier.

D'un autre côté, si myDateTime est demain ou à la date future, cela donnera un résultat entier négatif (-) en raison des règles d'addition.

Codage heureux! ^ _ ^


1
2017-08-01 21:36



Utiliser une période de temps permettrait de résoudre les problèmes car il a de nombreux attributs:

DateTime strt_date = DateTime.Now;
DateTime end_date = Convert.ToDateTime("10/1/2017 23:59:59");
//DateTime add_days = end_date.AddDays(1);
TimeSpan nod = (end_date - strt_date);
Console.WriteLine(strt_date + "" + end_date + "" + "" + nod.TotalHours + "");
Console.ReadKey();

1
2018-06-01 04:31