Я использую функцию TimeSpan в VB.NET, чтобы получить общее количество часов в месяце фактурирования.Как получить общее количество часов, используя TimeSpan в VB.NET
У меня есть 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
Однако, я не думаю, что манипулируя мою дату ввода (путем добавления в день) является лучшей практикой. Есть ли способ настроить функцию timepan, чтобы получить общее количество часов?
Вам нужно добавить день, потому что вы по существу выполняете целочисленное вычитание '30 - 1 = 29'. Время вашей даты начинается в полночь каждого дня, поэтому вы игнорируете 24 часа, которые являются частью последнего дня. –