我很难让我的功能正常工作。 这个函数应该估计用户每小时可以获得多少点数,但它显示的数字太多了。
Dim now As DateTime = DateTime.Now
Private Function PointsPerHour(gainedpoints As String, totalpoints As String)
Dim firstvalue = gainedpoints
Dim secondvalue = firstvalue
Dim thirdvalue = totalpoints
Dim varJWG0 As String = "Points: "
Dim varJWG1 As String = thirdvalue
Dim varJWG2 As String = " Points Per Hour: "
Dim varJJM0 As Double = Double.Parse(thirdvalue.Replace(",", String.Empty)) - Double.Parse(secondvalue.Replace(",", String.Empty))
Dim timeSpan As TimeSpan = Now - DateTime.Now.ToLocalTime
Dim dbl_ As Double = varJJM0 / timeSpan.TotalHours * -1.0
Return (Convert.ToString(varJWG0 & varJWG1) & varJWG2) + dbl_.ToString("0.00")
End Function
即使我PointsPerHour(9, 91)
它仍然输出超过1000。
我做错了什么?
答案 0 :(得分:1)
因此,我并不完全确定此方法在您当前的实现中尝试实现的目的。
首先,值firstValue和secondValue是相同的,firstValue似乎除了分配给secondValue之外似乎没有使用,这对我来说似乎是多余的。
我能看到的第一个问题是你没有时间参与这个功能。你用来保持totalHours的timeSpan没有保持有用的值。你是从Now.ToLocalTime中减去Now。你将从这个等式得到0或你的时区偏移。
基本上;假设你的9,91例子;你得到((91-9)/ timeSpan)* -1)。
如果9是您每小时赚取的积分,91是总积分,那么91/9 =小时。或者如果您给出小时9 *小时= 91(在这种情况下为10.1)。