在一个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分钟
任何帮助将不胜感激......
答案 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