如何修复DateTime以显示正确答案?

时间:2015-01-28 14:21:10

标签: c#

我正在努力比较工作,但我真的无法让它正常工作。我想要一个简单的方法来做到这一点,但我认为我的方式不是最好的方式。

Fx

  

现在时间2015-01-28 14:58

     

DepatureTime 2015-01-28 14:59

     

答案是:+ 1分钟

  

现在时间2015-01-28 14:59

     

DepatureTime 2015-01-28 14:59

     

答案是:现在

  

现在时间2015-01-28 14:59

     

DepatureTime 2015-01-28 15:00

     

答案是:走了

到目前为止我已经做到了这一点,但它远非正确。第一件事是我需要从DateTime获得秒数。

DateTime t1 = DateTime.Now;
var t2 = DateTime.Parse("2015-01-28 15:14");

if(t2 < t1)
{
    Console.WriteLine("Gone");
}
else if (t2 == t1)
{
     Console.WriteLine("Now");
}
else
     Console.WriteLine("+1");

2 个答案:

答案 0 :(得分:5)

一些提示: t2 == t1表示它必须完全相同(也是相同的毫秒)。您可能只想比较年,月,日,小时和分钟。

如果你做2 DateTimes的减法,你会得到TimeSpan。这个TimeSpan表示他们彼此之间有多少分钟。

DateTime t1 = DateTime.Now;
DateTime t2 = DateTime.Parse("2015-01-28 15:14");
TimeSpan difference = t2 - t1;
Console.WriteLine("Difference {}".format(difference.TotalMinutes))

请注意,TimeSpan.TotalMinutesdouble。因此,您可能希望将其舍入为整数,以便向用户显示。

minutes_difference = Math.Round(difference.TotalMinutes, MidpointRounding.AwayFromZero)

答案 1 :(得分:0)

DateTimeOffset t1 = DateTimeOffset.Now;
DateTimeOffset t2 = DateTime.Parse("2015-01-28 15:14"); // implicit conversion

/* Use the differences as you wish.  E.g.,
          (t1 - t2).Hours 
          (t1 - t2).Minutes
 */