Двойное представление типа данных от 24-часового времени до 24-часового формата времени

Все:

Вот подробности, связанные с моей средой разработки:

  • Microsoft Visual Studio Professional 2013
  • MongoDB версии 3.0.0

В моей базе данных MongoDB есть коллекция BusSchedule со следующими полями

BusSchedule
-Double StartTime
-Double EndTime
-String 24hourFormatStartTime
-String 24hourFormatEndTime

Вот некоторые типичные значения, которые могут существовать

StartTime = 6.5
EndTime = 9.5
24hourFormatStartTime = "06:30"
24hourFormatEndTime = "09:30"

StartTime = 8.5
EndTime = 14.25
24hourFormatStartTime = "08:30"
24hourFormatEndTime = "14:15"

Мне было интересно, есть ли у Microsoft какая-то существующая библиотека, которая могла бы легко преобразовать представление двойного типа данных 24-часового времени в 24-часовое время формата.

StartTime = 8.5  -------translated to-----> 24hourFormatStartTime = "08:30"
EndTime = 14.25  -------translated to-----> 24hourFormatEndTime = "14:15"

StartTime = 6.5 -------translated to-----> 24hourFormatStartTime = "06:30"
EndTime = 9.5 -------translated to-----> 24hourFormatEndTime = "09:30"

Я не хочу тратить время на написание кода для вышеупомянутого перевода. Может ли кто-нибудь сказать мне, справится ли Microsoft или какая-либо сторонняя библиотека с открытым исходным кодом с вышеупомянутым требованием?


person CS Lewis    schedule 02.11.2015    source источник
comment
Вы можете прочитать эти значения на стороне C # как System.Double или System.String?   -  person Soner Gönül    schedule 02.11.2015
comment
Тип Double связан с StartTime и EndTime на стороне C #. 24hourFormatStartTime и 24hourFormatEndTime связаны со строкой на стороне C #. Правильно ли я отвечаю на ваш вопрос?   -  person CS Lewis    schedule 02.11.2015
comment
Я знаю их ассоциации, но можете прочитать эти 6.5 или 14.25 значения из вашего mongodb и присвоить ему двойную переменную C #, например /* read this value from db */ double d = 14.25? Или вы спрашиваете, как читать эти значения из mongodb и назначать их?   -  person Soner Gönül    schedule 02.11.2015
comment
Я уже могу прочитать значения StartTime и EndTime из MongoDB и поместить их в двойные переменные. как я могу преобразовать его в строковую версию 24-часового формата времени?   -  person CS Lewis    schedule 02.11.2015


Ответы (1)


Я уже могу прочитать значения StartTime и EndTime из MongoDB и поместить их в двойные переменные. как я могу преобразовать его в строковую версию 24-часового формата времени?

Затем вы можете использовать эти двойные значения для создания TimeSpan и получить их строковое представление, используя метод TimeSpan.ToString() и форматhh\\:mm.

TimeSpan ts = TimeSpan.FromHours(14.25);

введите здесь описание изображения

потом

Console.WriteLine(ts.ToString("hh\\:mm")); // 14:15

Имейте в виду, что этот код предназначен для .Net 4.0 или выше. Если у вас .Net 3.5 и ниже, вам необходимо использовать string.Format, как описано.

person Soner Gönül    schedule 02.11.2015