2012-11-10 56 views
1

我通常有這樣的好方法在Excel中使用簡單細胞的自定義格式[HH]正常數字格式轉換到小時和分鐘格式:毫米果然出這樣的:格式的時間[HH]:mm格式

excel sheet

現在,我似乎無法找到一個類似的在Visual Basic 2010或SQL 2000中要做到這一點所以沒有任何一個的方式做到這一點知道的。 在此先感謝。

注:的括號[ HH ]:毫米是保持小時圖從每24小時一圈後四捨五入爲0。

+0

你知道嗎? http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx –

+0

「正常數字」是什麼意思?我不知道這意味着什麼。 – Oded

+0

<>虛構? ;-) – pnuts

回答

0

試試這個:

Public Function FormatHoursAndMinutes(totalMinutes As Integer) As String 
    Dim span As TimeSpan = TimeSpan.FromMinutes(totalMinutes) 
    Return String.Format("{0:00}:{1:00}", CInt(Math.Floor(span.TotalHours)), span.Minutes) 
End Function 
+0

是的,謝謝我試過但它不能正常工作你知道我寫的時間是1.5小時我需要的是這個結果1:30當你的函數給了我另一個結果時,我欣賞直接的方式雖然非常感謝,但給出了答案。 –

+0

糟糕。忘了把它放下來。我通過添加'Math.Floor'來修復它。 –

+0

非常感謝你,雖然24小時內它不工作,但它只是回到零,即24.5小時= 00:30使用你的功能。 –

1

這聽起來像你想有一個TimeSpan並使用FromMinutes方法來構建它。

然後,您可以使用.ToString()或其重載之一格式化TimeSpan進行顯示。

+0

它看起來不像任何標準或自定義格式字符串都支持該格式。所以,在傳遞自己的格式化對象之後,ToString方法將無法正常工作。 –

0

如果您想要顯示24小時以上的內容。是否真的需要在每次要將Interger轉換爲hh:mm時創建TimeSpan對象?

Public Function MinutesTohhmm(ByVal mins As Integer) As String 

    Dim hrs As Integer = mins \ 60 
    Dim mnts As Integer = mins Mod 60 

    Dim hhmmStr As String = IIF(hrs < 10, "0", "") & hrs & ":" & IIF(mnts < 10, "0", "") & mnts 

    Return hhmmStr 

End Function 
相關問題