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

use*_*911 0 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");
Run Code Online (Sandbox Code Playgroud)

Rvd*_*vdK 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))
Run Code Online (Sandbox Code Playgroud)

请注意,这TimeSpan.TotalMinutes是一个double.因此,您可能希望将其舍入为整数以便向用户显示.

minutes_difference = Math.Round(difference.TotalMinutes, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud)