Как я могу конвертировать ЧЧ: ММ: СС в считанные секунды, используя C # .net? - PullRequest
23 голосов
/ 25 марта 2009

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

Ответы [ 5 ]

68 голосов
/ 25 марта 2009

Это похоже на временную шкалу. Так просто разбери текст и получи секунды.

string time = "00:01:05";
double seconds = TimeSpan.Parse(time).TotalSeconds;
20 голосов
/ 25 марта 2009

Вы можете использовать метод разбора на aTimeSpan.

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

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

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

int seconds = ts.Seconds;

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

10 голосов
/ 25 марта 2009

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

Так

TimeSpan.Parse("03:33:12").TotalSeconds;
1 голос
/ 12 сентября 2012
//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;
1 голос
/ 09 октября 2011

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

"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;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...