【发布时间】:2025-12-06 13:50:03
【问题描述】:
我在 VB.NET 中使用 TimeSpan 函数来获取一个计费月份的总小时数。
我在一个计费月有 30 天,所以我应该有 720 个间隔。正常使用时间跨度,我会得到 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
但是,我不认为操纵我的输入日期(通过添加一天)是最佳做法。有没有办法配置timespan函数来获取包含的总小时数?
【问题讨论】:
-
您需要添加日期,因为您实际上是在执行整数减法
30 - 1 = 29。您的日期时间从每天的午夜开始,因此您忽略了最后一天的 24 小时。