Excuse the rough code, I\'m trying to display the duration of videos given the time in seconds. I\'ve had a go below but it\'s not working properly.
I want it to just d
I think you can simplify this by removing the "D2" aspect of the format and then you won't need a special case for the under ten minutes option. Basically just using
string.Format("{0}m:{1}s", t.Minutes, t.Seconds);
will get you one or two digits as required. So your final case is:
string.Format("{0}h:{1}m:{2}s", t.Hours, t.Minutes, t.Seconds);
Something like:
public static string PrintTimeSpan(int secs)
{
TimeSpan t = TimeSpan.FromSeconds(secs);
string answer;
if (t.TotalMinutes < 1.0)
{
answer = String.Format("{0}s", t.Seconds);
}
else if (t.TotalHours < 1.0)
{
answer = String.Format("{0}m:{1:D2}s", t.Minutes, t.Seconds);
}
else // more than 1 hour
{
answer = String.Format("{0}h:{1:D2}m:{2:D2}s", (int)t.TotalHours, t.Minutes, t.Seconds);
}
return answer;
}
readonly static Char[] _colon_zero = { ':', '0' };
// ...
var ts = new TimeSpan(DateTime.Now.Ticks);
String s = ts.ToString("h\\:mm\\:ss\\.ffff").TrimStart(_colon_zero);
.0321 6.0159 19.4833 8:22.0010 1:04:2394 19:54:03.4883
According to msdn try this:
if (secs < 60)
{
answer = t.Format("s");
}
else if (secs < 600)//tenmins
{
answer = t.Format("m:s");
}
// ...