我正在尝试计算两个日期之间的差异。这就是我目前使用的:
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";
除了休息一天外,一切正常。我假设这是因为它不计算一整天不到24小时。有没有办法让它这样做?谢谢。
答案 0 :(得分:12)
int days = (int)Math.Ceiling(diff.TotalDays);
答案 1 :(得分:1)
问题是相当哲学的;如果明天是圣诞节,你会认为它还剩1天,或者还剩0天。如果您将明天放入计算中,答案将为0.
答案 2 :(得分:1)
如果你更换你的问题,你的问题就会消失:
DateTime.Now
with:
DateTime.Today
因为你的差异计算将在整天工作。
答案 3 :(得分:0)
我通常使用以下代码来获取需要输出的单位的预期输出:
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);