Преобразуйте Время в отформатированную строку в C#

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";
}
7
задан Kelsey 1 September 2011 в 17:13
поделиться

6 ответов

Если время плавающее или удваиваемое, вам придется. Система. .Math.Truncate (Time), чтобы получить часы

, а затем (Time - System.Math.Truncate (Time)) * 60 , чтобы получить минуты.

0
ответ дан 6 December 2019 в 06:02
поделиться

Я предполагаю, что Time имеет тип TimeSpan ? В этом случае документация TimeSpan.ToString может вам помочь, в частности, страницы

Если Time является числовым типом данных, вы можете использовать TimeSpan.FromHours , чтобы сначала преобразовать его в TimeSpan.

(РЕДАКТИРОВАТЬ: строки формата TimeSpan были введены в .NET 4.)

2
ответ дан 6 December 2019 в 06:02
поделиться

Обратите внимание, что если вы работаете в 24-часовом режиме, очень важно использовать ЧЧ: мм , а НЕ чч : мм .

Иногда я ошибочно пишу чч: мм , а затем вместо «13:45» получаю «01:45», и невозможно узнать, AM или PM (если вы не используете тт ).

1
ответ дан 6 December 2019 в 06:02
поделиться

Спасибо за все ответы, ребята и девушки, которые я использовал DateTime.MinValue.AddHours (Time) .ToString ("H: mm") ; для моей программы, так как она была самой простой для реализации.

0
ответ дан 6 December 2019 в 06:02
поделиться

Если Время - это System.Double , то System.TimeSpan.FromHours (Time) .ToString ();

2
ответ дан 6 December 2019 в 06:02
поделиться
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");
25
ответ дан 6 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: