Как конвертировать секунды в формате min: sec

как конвертировать секунды в минуту: второй формат

Ответы

Ответ 1

int totalSeconds = 222;
int seconds = totalSeconds % 60;
int minutes = totalSeconds / 60;
string time = minutes + ":" + seconds;

Ответ 2

Универсальная версия должна использовать TimeSpan следующим образом:

var span = new TimeSpan(0, 0, seconds); //Or TimeSpan.FromSeconds(seconds); (see Jakob C´s answer)
var yourStr = string.Format("{0}:{1:00}", 
                            (int)span.TotalMinutes, 
                            span.Seconds);

Ответ 3

Только для полноты я добавлю ответ, используя TimeSpan (работает с .NET 4.0):

int seconds = 1045;
var timespan = TimeSpan.FromSeconds(seconds);            
Console.WriteLine(timespan.ToString(@"mm\:ss"));

Ответ 4

Что-то вроде этого:

string minSec = string.Format("{0}:{1:00}", seconds / 60, seconds % 60);

Обратите внимание, что это гарантирует, что секунды всегда отображаются как две цифры, например. "2:05" на 125 секунд. В настоящее время протоколы не обрабатываются одинаково, но, конечно, они могут быть.

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

string minSec = string.Format("{0}:{1:00}", seconds / 60, 
                              (Math.Abs(seconds)) % 60);

Наконец, у вас всегда будет меньше часа? Может показаться странным видеть "80:00", если вы действительно имеете в виду "1:20:00", например.

Ответ 5

double seconds=125;    
TimeSpan.FromSeconds(seconds).ToString() 

предоставит вам: 00:02:05. По моему мнению, это встроенное решение более расширяемо, так как оно может дать вам часы, без какой-либо логики.

Ответ 6

Простая математика. От 60 секунд до минуты.

int mins = totalseconds/60;
int secs = totalseconds % 60;

Console.Writeline(string.Format("{0}:{1}", mins, secs));

Ответ 7

Альтернативный способ отображения секунд, например. "2:05" может быть использование PadLeft.

string time = minutes.ToString() + ":" + seconds.ToString().PadLeft(2,'0');

Ответ 8

var seconds = 60;
//10,000 ticks in a millisecond
var ticks = seconds*10000*1000;
DateTime dt = new DateTime(ticks);
dt.ToString("mm:ss");

Ответ 9

Что работает для меня...

public static string SecondsToMinutes(int seconds)
{
   var ts = new TimeSpan(0, 0, seconds);                
   return new DateTime(ts.Ticks).ToString(seconds >= 3600 ? "hh:mm:ss" : "mm:ss");
}

Ответ 10

Непосредственно отвечать на исходный вопрос, но в случае, если кто-то (или я) в будущем придет сюда из Google, желающего форматировать float с миллисекундами:

float secs = 23.69;
string m_ss_mmm = string.Format("{0}:{1:00}.{2:000}", (int)secs / 60, (int)(secs % 60), (secs - ((int)secs)) * 1000);

Результат:

0:23.690