Time.ToString("0.0")
обнаруживается как десятичное число "1.5" для вместо 1:30. Как я могу заставить это отображаться в формате времени?
private void xTripSeventyMilesRadioButton_CheckedChanged(object sender, EventArgs e)
{
//calculation for the estimated time label
Time = Miles / SeventyMph;
this.xTripEstimateLabel.Visible = true;
this.xTripEstimateLabel.Text = "Driving at this speed the estimated travel time in hours is: " + Time.ToString("0.0") + " hrs";
}
Если время плавающее или удваиваемое, вам придется. Система. .Math.Truncate (Time), чтобы получить часы
, а затем (Time - System.Math.Truncate (Time)) * 60 , чтобы получить минуты.
Я предполагаю, что Time
имеет тип TimeSpan
? В этом случае документация TimeSpan.ToString может вам помочь, в частности, страницы
Если Time является числовым типом данных, вы можете использовать TimeSpan.FromHours , чтобы сначала преобразовать его в TimeSpan.
(РЕДАКТИРОВАТЬ: строки формата TimeSpan были введены в .NET 4.)
Обратите внимание, что если вы работаете в 24-часовом режиме, очень важно использовать ЧЧ: мм
, а НЕ чч : мм
.
Иногда я ошибочно пишу чч: мм
, а затем вместо «13:45» получаю «01:45», и невозможно узнать, AM или PM (если вы не используете тт
).
Спасибо за все ответы, ребята и девушки, которые я использовал DateTime.MinValue.AddHours (Time) .ToString ("H: mm") ;
для моей программы, так как она была самой простой для реализации.
Если Время
- это System.Double
, то System.TimeSpan.FromHours (Time) .ToString ();
Time.ToString("hh:mm")
Форматы:
HH:mm = 01:22
hh:mm tt = 01:22 AM
H:mm = 1:22
h:mm tt = 1:22 AM
HH:mm:ss = 01:22:45
EDIT: Поскольку теперь мы знаем, что время - это double
измените код на (если вы хотите часы и минуты):
// This will handle over 24 hours
TimeSpan ts= System.TimeSpan.FromHours(Time);
string.Format("{0}:{1}", System.Math.Truncate(ts.TotalHours).ToString(), ts.Minutes.ToString());
или
// Keep in mind this could be bad if you go over 24 hours
DateTime.MinValue.AddHours(Time).ToString("H:mm");