2017-06-29 13 views
-1

私の機能を正しく機能させるのが難しいです。 この関数は、ユーザーが1時間に何ポイント取得するかを推定する代わりに、あまりにも多くの数を表示します。時間単位の機能が正常に機能するのに役立つ必要があります

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 

、私はそれはまだ私が間違っているのは何より1000 を出力PointsPerHour(9, 91)を行う場合であっても?

+0

コードのデバッグを試みて、そのような動作をしている理由を確認しましたか?あなたのコードもリファクタリングが必要です – jamiedanq

答えて

1

このメソッドが現在の実装で達成しようとしていることは完全にはわかりません。

最初に値firstValueとsecondValueは同じです。また、firstValueはsecondValueに代入する以外には使用されていないようです。

私が見る最初の問題は、この機能に時間がないことです。おそらくtotalHoursを保持するために使用しているtimeSpanは有用な値を保持していません。今すぐNow.ToLocalTimeから引き算しています。あなたはこの方程式から0またはあなたのタイムゾーンオフセットを得るでしょう。

基本的には、あなたの9,91の例を前提とします。あなたは((91-9)/ timeSpan)* -1)を得ています。

9が1時間当たりの収入であり、91が合計ポイントの場合、91/9 =時間です。 9時間* = 91時間(この場合は10.1時間)を指定した場合。

関連する問題