Для .Net < = 4.0 Использование класс TimeSpan.
TimeSpan t = TimeSpan.FromSeconds( secs );
string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms",
t.Hours,
t.Minutes,
t.Seconds,
t.Milliseconds);
(Как отмечено Inder Kumar Rathore) Для .NET> 4.0 можно использовать
TimeSpan time = TimeSpan.FromSeconds(seconds);
//here backslash is must to tell that colon is
//not the part of format, it just a character that we want in output
string str = time .ToString(@"hh\:mm\:ss\:fff");
(От Nick Molyneux), Гарантируют, что секунды [меньше чем 112] для предотвращения исключения.
Если Вы знаете, что у Вас есть много секунд, можно создать стоимость TimeSpan путем вызова TimeSpan. FromSeconds:
TimeSpan ts = TimeSpan.FromSeconds(80);
можно тогда получить количество дней, часы, минуты или секунды. Или используйте одну из перегрузок ToString для вывода его любым способом, который Вы любите.
TimeSpan.FromSeconds(80);
http://msdn.microsoft.com/en-us/library/system.timespan.fromseconds.aspx
Конструктор TimeSpan позволяет Вам передать в секундах. Просто объявите переменную типа количество TimeSpan секунд. Исключая:
TimeSpan span = new TimeSpan(0, 0, 500);
span.ToString();
Я предложил бы, чтобы Вы использовали TimeSpan
класс для этого.
public static void Main(string[] args)
{
TimeSpan t = TimeSpan.FromSeconds(80);
Console.WriteLine(t.ToString());
t = TimeSpan.FromSeconds(868693412);
Console.WriteLine(t.ToString());
}
Выводы:
00:01:20
10054.07:43:32
В VB.NET, но это - то же в C#:
Dim x As New TimeSpan(0, 0, 80)
debug.print(x.ToString())
' Will print 00:01:20