C# 两个日期之间的差异?
我正在计算两个日期之间的差异。这是我目前正在使用的:C# 两个日期之间的差异?,c#,date,timespan,C#,Date,Timespan,我正在计算两个日期之间的差异。这是我目前正在使用的: 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"
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小时的时间。有没有办法让它这样做?谢谢。这个问题很有哲理;如果圣诞节是明天,你认为是1天,还是0天。如果你把明天算进去,答案是0 如果更换以下部件,您的问题就会消失:
int days = (int)Math.Ceiling(diff.TotalDays);
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);
无法将类型“double”隐式转换为“int”。存在显式转换(是否缺少转换?)int days=Convert.ToInt32(Math.天花(diff.TotalDays));哎呀,假设数学。上限返回整数。。。现在我想起来有点傻了为什么它会在几天前返回一个“-”呢?哇,我觉得很傻。我改变了它,然后它返回了错误的天数值,所以我最终使用int days=diff.days;就像我最初做的那样。