Лучший способ конвертировать общее количество минут в формат ЧЧ: мм? - PullRequest
7 голосов
/ 09 ноября 2010

Я получаю возвращаемое значение от веб-службы в минутах, например 538 минут. Мне нужно разбить это на часы и минуты. Какой самый быстрый способ, в коде .net, а также в коде VB6 (два приложения используют сервис), чтобы преобразовать это из минут в ЧЧ: мм?

Спасибо

Ответы [ 6 ]

12 голосов
/ 09 ноября 2010

Этот код должен работать как в .NET, так и в VB6:

Dim hours As Integer = 538 \ 60
Dim minutes As Integer = 538 - (hours * 60)
Dim timeElapsed As String = CType(hours, String) & ":" & CType(minutes, String)
label1.Text = timeElapsed

Только в .NET вы должны быть в состоянии сделать следующее (что требует проверки):

Dim timeElapsed As DateTime = New DateTime(1, 1, 1, 0, 538, 0)
label1.Text = timeElapsed.ToString("HH:mm")

Надеюсь, это поможет!

5 голосов
/ 09 ноября 2010

В VB6 вы можете просто использовать Format(538/1440.0, "hh:mm")

VB6 Date значения могут быть обработаны как количество дней, и в дне 1440 минут. Таким образом, 538/1440 - это количество дней в вашем периоде, а затем вы можете использовать Format

5 голосов
/ 09 ноября 2010

В .Net у вас есть класс TimeSpan, поэтому вы можете сделать следующее

Dim t As New TimeSpan(0, 538, 0)

'Then you have the 2 properties
t.Hours
t.Minutes
3 голосов
/ 09 ноября 2010

Взять модуль 60, затем целочисленное деление на 60.

В VB целочисленное деление использует \.

2 голосов
/ 09 ноября 2010

Если вам нужно выполнить операции с другими объектами DateTime, может быть полезно использовать объект TimeSpan, например,

    Dim oTS As New TimeSpan(0, 538, 0)
    MessageBox.Show(Format(oTS.Hours, "00") & ":" & Format(oTS.Minutes, "00"))
    Dim startime As DateTime = Date.Now
    Dim newtime As DateTime = startime + oTS
    MessageBox.Show(newtime.ToString("HH:mm"))

Если нет, то предложение Мэтью использовать целочисленное деление '\' и модуль по модулю 'Modбудет работать очень хорошо.

0 голосов
/ 09 ноября 2010

если вам нужны строки, то: dt.ToString ("ЧЧ: мм");

(информация)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...