如何在VB.NET中使用TimeSpan获得包含总时数

时间:2014-12-19 03:55:03

标签: vb.net timespan

我在VB.NET中使用TimeSpan函数来获取结算月份的总小时数。

我在结算月份有30天,所以据说,我有720天。通常使用Timespan,我会得到696个间隔。但是我在“todate”中添加了一天,以便获得正确的总时数。 这是我的代码:

Dim TS As TimeSpan   
Dim totalhours As Integer
Dim todate As DateTime = #11-30-2014#
Dim fromdate As DateTime = #11-01-2014#

TS = todate.AddDays(1).Subtract(fromdate)
totalhours = TS.TotalHours

但是,我不认为操纵我的输入日期(通过添加一天)是最好的做法。有没有办法配置时间跨度功能以获得包含总时数?

1 个答案:

答案 0 :(得分:2)

那是因为你没有提供时间范围。时间部分的日期仅为上午12点。

Dim TS As TimeSpan   
Dim totalhours As Integer
Dim todate As DateTime = #11-30-2014 11:59:59 PM#
Dim fromdate As DateTime = #11-01-2014#

TS = todate.Subtract(fromdate)
totalhours = TS.TotalHours

这将是1小时害羞。

Dim TS As TimeSpan   
Dim totalhours As Integer
Dim todate As DateTime = #12-01-2014#
Dim fromdate As DateTime = #11-01-2014#

TS = todate.Subtract(fromdate)
totalhours = TS.TotalHours

将获得正确的金额,因为它包含两个日期之间的时间。