web-dev-qa-db-fra.com

Soustraire deux dates

J'ai deux calendriers et chacun renvoie un DateTime de calendar.SelectedDate.

Comment puis-je soustraire les deux dates sélectionnées l'une de l'autre, en me donnant le nombre de jours entre les deux sélections?

Il y a un calendar.Subtract () mais il a besoin d'un TimeSpan au lieu de DateTime.

34
sd_dracula

Vous pouvez utiliser someDateTime.Subtract(otherDateTime), cela retourne un TimeSpan qui a une propriété TotalDays.

45
C.Evenhuis

Utilisez simplement:

TimeSpan difference = end - start;
double days = difference.TotalDays;

Notez que si vous voulez les traiter comme dates vous devriez probablement utiliser

TimeSpan difference = end.Date - start.Date;
int days = (int) difference.TotalDays;

De cette façon, vous n'obtiendrez pas de résultats différents selon les temps.

(Vous pouvez utiliser la méthode Subtract au lieu de - opérateur si vous voulez, mais personnellement je trouve plus clair d'utiliser l'opérateur.)

30
Jon Skeet

.

DateTime dtToday = new System.DateTime(2012, 6, 2, 0, 0, 0); DateTime dtMonthBefore = new System.DateTime(2012, 5, 2, 0, 0, 0); TimeSpan diffResult = dtToday.Subtract(dtMonthBefore); Console.WriteLine(diffResult.TotalDays);

3
Steve