如何获得日期的差异

时间:2012-08-30 14:50:24

标签: c# datetime

我想知道如何在完整小时内获得两个日期之间的差异

e.g。

DateTime date1 = DateTime.Now;
DateTime date2 = new DateTime(2011, 8, 5, 33,00); 
long hours = date1 - date2;

5 个答案:

答案 0 :(得分:5)

这是对long / int的强制转换,可以给你完整的时间。

TimeSpan span = date1.Subtract(date2);
long hours = (long)span.TotalHours;

答案 1 :(得分:4)

var hours = (date1 - date2).TotalHours;

或者,如果你不想要一小时的分数:

var hours = Math.Floor((date1 - date2).TotalHours);

答案 2 :(得分:3)

您可以通过减去两个日期来使用TimeSpan

DateTime date1 = DateTime.Now;
DateTime date2 = new DateTime(2011, 8, 5); 
TimeSpan ts = date1 - date2;
long hours = (long)ts.TotalHours;

如果您希望尽可能精确地对其进行舍入,则可以使用Math.Round

long hours = (long)Math.Round(ts.TotalHours, MidpointRounding.AwayFromZero);

答案 3 :(得分:1)

您可以尝试使用

  var result = date1 - date2;
    var hours = result .TotalHours;

答案 4 :(得分:1)

我找到了一个非常好的 DateTimeSpan 实现,用于计算各种差异,小时,天,月in this post