2012-05-22 59 views
1

在Jquery Mobile和ASP 4組合的網站上工作。目前我被困在一個表單中,我試圖去做一個SQL插入。我試圖在VB中使用代碼來處理我的插入...一輪到一刻鐘; aspx.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

您可以使用Math.DivRem

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

此時其餘部分將現在是幾小時之間剩下的時間。 0至59分鐘。我並沒有清楚你想怎樣才能確切地說明這一點,但(雙)餘數/ 60.00會給你小數點位置,然後你可以加上整數。

+0

謝謝!那樣做了。我用這個和CASE來完成,我知道案例會起作用,但我無法弄清楚如何分離「餘數」。以下是我的代碼: –

+0

Dim dD As As TimeSpan = DateTime.Parse(tbEnd.Text) - DateTime.Parse(tbStrt.Text) Dim mins As Integer = tDff.TotalMinutes.ToString Dim rmndr As Integer Dim hrs As String = Math.DivRem(分鐘,60,rmndr) 昏暗qtyordr作爲字符串 選擇案例rmndr 案例1〜2 qtyordr =小時 案例3至18 qtyordr =小時&」 0.25" 案19至28 qtyordr = hrs&「.50」 Case 29 To 48 qtyordr = hrs&「.75」 Case Else qtyordr =(hrs + 1)&「.00」 結束選擇 lblResult.Text = qtyordr' –

+0

很抱歉,如果發佈回覆的消息已經淹沒了你。最後一個我保證。只是想抱怨它屠殺代碼結構... –

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