四分之一小时; aspx.vb

时间:2012-05-22 16:21:31

标签: asp.net jquery-mobile

在一个Jquery Mobile和ASP 4的组合网站上工作。目前我被困在一个表格上,我正试图做一个SQL插入。我正在尝试使用VB中的代码来处理我的插入...

所有这一切:我需要我的页面将分钟值转换为小时和小时格式,四舍五入到最接近的四分之一小时。

目前我正在两次进入文本框(例如上午8:00:00和上午9:12:00)。如果我使用TimeSpan,我可以计算两个值之间的差异并将该差值转储到变量中,例如tElapsed = tSpan.TotalMinutes.ToString将在上述时间设置tElapsed = 72。我需要将其转换为1.0小时,1.25小时,1.5小时等格式,并在下半小时内完成3分钟以上......而且我一直卡住了。

梗概:

有:

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分钟

任何帮助将不胜感激......

2 个答案:

答案 0 :(得分:2)

您可以使用Math.DivRem

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

此时剩余时间将是几小时之间的剩余时间。 0到59分钟。我不清楚你想要如何完全舍入,但(双)余数/ 60.00将给你小数位,然后你可以添加到整体。

答案 1 :(得分: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