2011-06-27 175 views
-1

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

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小时

感谢

回答

8

使用TotalHours而不是Hours两个日期之间的总小时的时差。请注意,结果是double - 您只需将其投射到int以获取整个小时数。 (检查你想要的行为,如果结果是否定的,虽然...)

从文档为Hours

属性值:当前时间跨度结构的小时部分。返回值的范围从-23到23

你不想小时组件 - 你想整个时间跨度,以小时数。

+0

感谢Jon.In数据库DateTime类型值是上午下午格式我如何转换这24小时格式或我会得到正确的结果,而不将其转换 –

+1

@saurabh:这是一个完全不同的问题 - 正确提取数据的问题。您不应该将其作为字符串提取,但我们看不到任何用于访问它的代码。我建议你开始一个新的问题,如果你不能解决如何让你的数据库提供者给你一个'DateTime'而不是一个字符串。 –

4
int hours = (int) (date2 - date1).TotalHours; 
2
 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;