我想知道如何在完整小时内获得两个日期之间的差异
e.g。
DateTime date1 = DateTime.Now;
DateTime date2 = new DateTime(2011, 8, 5, 33,00);
long hours = date1 - date2;
答案 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