我发现这个问题已经在Java、JavaScript和PHP中得到了解答,但c#中没有。那么,如何在c#中计算两个日期之间的天数呢?


当前回答

上面的答案是正确的,但是如果你只想把整天作为整数,并且愿意放弃约会的时间部分,那么可以考虑:

(EndDate.Date - StartDate.Date).Days

同样假设StartDate和EndDate是DateTime类型。

其他回答

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

对于a和b作为两个DateTime类型:

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();
// 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

你也可以得到秒、毫秒和滴答的差异。

你可以使用下面的代码:

 int DateDifInSecond = EndDate.Subtract(StartDate).TotalSeconds

如果有人想要作为双精度的天数(a, b类型的DateTime):

 (a.Date - b.Date).TotalDays