减去两个日期时间变量

时间:2011-06-27 16:30:12

标签: c# asp.net datetime

如何获得两个日期时间变量之间的总小时数?

date1=1/1/2011 12:00:00

date2=1/3/2011 13:00:00
datetime date1 ;

datetime date2;

int hours=(date1.date2).hours;

输出为“1”,但我想要两个日期之间的总小时差,即49小时

感谢

3 个答案:

答案 0 :(得分:9)

使用TotalHours代替Hours。请注意,结果为double - 您只需将其转换为int即可获得整个小时数。 (如果结果为负,请检查您想要的行为......)

来自Hours的文档:

  

属性值:当前TimeSpan结构的小时组件。返回值的范围是-23到23

您不希望小时组件 - 您需要整个时间跨度,以小时为单位。

答案 1 :(得分:4)

int hours = (int) (date2 - date1).TotalHours;

答案 2 :(得分:3)

        DateTime date1 = new DateTime(2011, 1, 1, 12, 0, 0);
        DateTime date2 = new DateTime(2011, 1, 3, 13, 0, 0);
        TimeSpan ts = date2 - date1;

        double hours = ts.TotalHours;