Подтвердить что ты не робот

Как преобразовать HH: MM: SS в несколько секунд, используя С#.net?

Есть ли опрятный способ сделать это, а не делать разделение на двоеточие и умножать каждую секцию на соответствующий номер для вычисления секунд?

4b9b3361

Ответ 1

Похоже на время. Так просто разобрать текст и получить секунды.

string time = "00:01:05";
double seconds = TimeSpan.Parse(time).TotalSeconds;

Ответ 2

Вы можете использовать метод parse для aTimeSpan.

http://msdn.microsoft.com/en-us/library/system.timespan.parse.aspx

TimeSpan ts = TimeSpan.Parse( "10:20:30" );
double totalSeconds = ts.TotalSeconds;

Свойство TotalSeconds возвращает полные секунды, если вы просто хотите, чтобы секунды использовали свойство seconds

int seconds = ts.Seconds;

Секунды возвращают '30'. TotalSeconds возвращает 10 * 3600 + 20 * 60 + 30

Ответ 3

TimeSpan.Parse() будет анализировать форматированную строку.

Итак,

TimeSpan.Parse("03:33:12").TotalSeconds;

Ответ 4

Этот код позволяет использовать компоненты часов и минут. Например,

"30" → 24 секунды
"1:30" → 90 секунд
"1:1: 30" → 3690 секунд

int[] ssmmhh = {0,0,0};
var hhmmss = time.Split(':');
var reversed = hhmmss.Reverse();
int i = 0;
reversed.ToList().ForEach(x=> ssmmhh[i++] = int.Parse(x));                           
var seconds = (int)(new TimeSpan(ssmmhh[2], ssmmhh[1], ssmmhh[0])).TotalSeconds;  

Ответ 5

//Added code to handle invalid strings
string time = null; //"";//"1:31:00";
string rv = "0";
TimeSpan result;
if(TimeSpan.TryParse(time, out result))
{
    rv = result.TotalSeconds.ToString();
}
retrun rv;