计算前面的小时数仅计算9-5小时

时间:2016-11-23 21:28:19

标签: vb.net time

我试图在一些预先确定的值16和40上获得快速ETA。例如,如果需要16个小时,我需要我的代码快速计算项目上的ETA,但只计算每天9-5(8)小时。显然,我需要包含那天的剩余时间,我在下面的代码中已经提到了。然而,我给自己一个痛苦的头脑试图找出最好的方法继续代码。也许某人有个好主意?

Dim TargetTime as Integer = 16
Dim currentHr As Integer = current.Hour
Dim TodaysRemainingHours As Integer = 0

If currentHr >= 9 AndAlso currentHr < 17 Then
    'Count remaining hours
    TodaysRemainingHours = (17- currentHr)
Else
    'Dont count today
    TodaysRemainingHours = 0
End If

我的计划是:

  • TargetTime - TodaysRemainingHours ---给予值计数 至。
  • 以某种方式计算基于9-5时间跨度的小时数。

  • lblOutput显示为:&#34; ETA:2016年5月25日下午2点&#34;

正如你所看到的,我知道如何获得我需要计算的vaule,但我需要一些帮助,首先只计算每天从9-5开始的小时数,然后返回估计的实际小时数。这不是任何有利可图的事情,而是个人ETA计划。

1 个答案:

答案 0 :(得分:0)

谢谢topshot,你的评论让我解决了!以下代码似乎对我有用,我还没有发现任何问题。如果时间过了下午5点,我必须确保我没有计算当天的剩余时间。谢谢。

SELECT db.*
FROM (SELECT db.*,
             ROW_NUMBER() OVER (PARTITION BY conversionid
                                ORDER BY (CASE WHEN channel <> 'Direct' THEN 1 ELSE 2 END),
                                         visit DESC
                               ) as seqnum
      FROM db
     ) db
WHERE seqnum = 1;