我试着得到一些预先确定的值,16和40的一个快速的ETA。例如,我需要我的代码来快速计算一个项目上的ETA,如果它需要16个小时,但是每天只计算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
--给出要计数的值。lblOutput
显示为:"ETA: 2016年11月25日下午2点“正如你所看到的,我知道如何得到我需要数到的金库,但我需要一些帮助,首先只计算每天9-5小时的时间,然后返回实际估计的小时数。这不是为了任何盈利,这是一个个人的ETA计划。
发布于 2016-11-23 22:37:50
谢谢你的点评,你的评论帮我解决了问题!下面的代码似乎适用于我,我还没有发现任何问题。如果时间也超过了下午5时,我必须确保没有计算当前一天剩下的几个小时。谢谢。
Dim TargetTime As Integer = 16
Dim current As Datetime = DateTime.now
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
If currentHr >= 9 AndAlso currentHr < 17 Then
'Deduct todays hours from target time.
TargetTime = (TargetTime - TodaysRemainingHours)
'Display results
MsgBox("ETA: " & Now.AddDays(TargetTime / 8))
Else
'Skip todays hours and count from tomorrow morning at 9am
Dim Tomorrow As DateTime = Today.AddDays(1)
Dim TomorrowMorning As TimeSpan = new TimeSpan(09, 00, 0)
Tomorrow = Tomorrow.Date + TomorrowMorning
'Display results
MsgBox("ETA: " & Tomorrow.AddDays(TargetTime / 8))
End If
https://stackoverflow.com/questions/40774438
复制相似问题