C# – 两个日期之间的差异?

我想计算两个日期之间的差异。 这就是我目前使用的:

int currentyear = DateTime.Now.Year; DateTime now = DateTime.Now; DateTime then = new DateTime(currentyear, 12, 26); TimeSpan diff = now - then; int days = diff.Days; label1.Text = days.ToString() + " Days Until Christmas"; 

一切正常,除了rest一天。 我假设这是因为它不计算一整天不到24小时。 有没有办法让它这样做? 谢谢。

 int days = (int)Math.Ceiling(diff.TotalDays); 

问题是相当哲学的; 如果明天是圣诞节,你会认为它还剩1天,或者还剩0天。 如果您将明天放入计算中,答案将为0。

如果你更换你的问题就会消失:

 DateTime.Now 

有:

 DateTime.Today 

因为你的差异计算将在整天工作。

我通常使用以下代码来获取需要输出的单元的预期输出:

  DateTime[] dd = new DateTime[] { new DateTime(2014, 01, 10, 10, 15, 01),new DateTime(2014, 01, 10, 10, 10, 10) }; int x = Convert.ToInt32((dd[0] - dd[1]).TotalMinutes); String unit = "days"; if (x / 60 == 0) { unit = "minutes"; } else if (x / 60 / 24 == 0) { unit = "hours"; x = x / 60; } else { x = x / (60 * 24); } Console.WriteLine(x + " " + unit);