2016-10-02 2 views
0

Мой TimeSpan является, например:Как отображать часы и минуты от промежутка времени с более чем 24 часов

Timespan span = new Timespan(40,24,34); 

И у меня есть эта линия

FormClock.Text = TimeToInstall.ToString(@"hh\:mm\:ss"); 

Я хочу, чтобы отобразить это в тексте как это:

40:24:34

Как это сделать?

+1

Возможный дубликат: http://stackoverflow.com/questions/3505230/format-timespan-greater-than-24-hour – Abion47

ответ

2

Глядя на MSDN, вы не можете сделать это со стандартным форматом .ToString(). Свойство временного промежутка TotalHours похоже на то, что вам нужно получить от дней до часов.

Из MSDN:

TimeSpan интервала = новый TimeSpan (1, 15, 42, 45, 750); Console.WriteLine («Значение TimeSpan: {0}», интервал);

Console.WriteLine("{0:N5} hours, as follows:", interval.TotalHours); 
    Console.WriteLine(" Hours:  {0,3}", 
        interval.Days * 24 + interval.Hours); 
    Console.WriteLine(" Minutes:  {0,3}", interval.Minutes); 
    Console.WriteLine(" Seconds:  {0,3}", interval.Seconds); 
    Console.WriteLine(" Milliseconds: {0,3}", interval.Milliseconds); 

Так что в вашем случае:

FormClock.Text = string.Format("{0}:{1}:{2}". TimeToInstall.Days * 24 + TimeToInstall.Hours, TimeToInstall.Minutes, TimeToInstall.Seconds); 

Если это то, что вы собираетесь использовать много вы можете посмотреть на прокат его в какой-то метод расширения.

+0

Я не мог в это поверить, поэтому спасибо за включение ссылки ;-) В моем случае (mm: ss), мне пришлось добавить еще один термин на протяжении всех минут ... Маленькое разочарование для класса TimeSpan :-) –

Смежные вопросы