1

Jquery Mobile と ASP 4 を組み合わせた Web サイトで作業しています。現在、SQL 挿入を実行しようとしているフォームに行き詰まっています。挿入を処理するために VB で分離コードを使用しようとしています...

つまり、ページで分の値を時間と 15 分の形式に変換し、最も近い 15 分の 1 時間に丸める必要があります。

現在、テキスト ボックスに 2 回入力しています (例: 午前 8:00:00 と午前 9:12:00)。TimeSpan を使用すると、2 つの値の差を計算し、その差を変数にダンプできます。たとえば、tElapsed = tSpan.TotalMinutes.ToString は、上記の時間に対して tElapsed = 72 を設定します。これを 1.0 時間、1.25 時間、1.5 時間などの形式に変換し、3 分以上を次の 30 分に丸める必要があります。

あらすじ:

もつ:

Text Box: Time1 = 8:00:00 AM
Text Box: Time2 = 9:12:00 AM
Dim tDiff As String = DateTime.Parse.(Time2.Text) - DateTime.Parse(Time1.Text)
Dim tElapse As String = tDiff.TotalMinutes.ToString

tElapse は上記に対して 72 を返します。ここで、72 (分) を 1.25 (時間) に変換する必要があります。

1.25 時間は、64 分~78 分のいずれかになります。

どんな助けでも大歓迎です...

4

2 に答える 2

2

Math.DivRemを使用できます

int remainder;
int whole = Math.DivRem(tDiff.TotalMinutes, 60, out remainder);

この時点で、残りは時間の間に残っているものになります。0〜59分。正確にどのように丸めたいかはわかりませんでしたが、(double)remainder / 60.00は小数点以下の桁数を示し、それを全体に追加できます。

于 2012-05-22T16:35:17.267 に答える
0

コード構造が表示されるように、私が使用したソリューションを回答として投稿します。

    Dim tDiff As TimeSpan = DateTime.Parse(textboxEnd.Text) - DateTime.Parse(textboxStart.Text)
    Dim mins As Integer = tDiff.TotalMinutes.ToString
    Dim remainder As Integer
    Dim hrs As String = Math.DivRem(mins, 60, remainder)
    Dim qtyorder As String
    Select Case remainder
        Case 1 To 2
            qtyorder = hrs
        Case 3 To 18
            qtyorder = hrs & ".25"
        Case 19 To 28
            qtyorder = hrs & ".50"
        Case 29 To 48
            qtyorder = hrs & ".75"
        Case Else
            qtyorder = (hrs + 1) & ".00"
    End Select

    lblResult.Text = qtyorder
于 2012-05-23T14:53:37.333 に答える