4

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

例如

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

5 回答 5

5

对 long/int 的强制转换将为您提供完整的时间。

TimeSpan span = date1.Subtract(date2);
long hours = (long)span.TotalHours;
于 2012-08-30T14:51:41.877 回答
4
var hours = (date1 - date2).TotalHours;

或者,如果您不想要一个小时的一小部分:

var hours = Math.Floor((date1 - date2).TotalHours);
于 2012-08-30T14:51:48.687 回答
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);
于 2012-08-30T14:51:43.170 回答
1

你可以试试

  var result = date1 - date2;
    var hours = result .TotalHours;
于 2012-08-30T14:52:26.617 回答
1

我发现了一个非常好的DateTimeSpan实现,我用它来计算这篇文章中的各种差异、小时、天、月

于 2012-08-30T14:53:42.077 回答