c# - 很好地显示时间跨度

请原谅粗略的代码,我正在尝试以秒为单位显示视频的持续时间。 我在下面试了一下,但它不能正常工作。

我希望它能够很好地显示 - 即应该显示 9m:59s 而不是 09m:59s。

如果小时为零不显示小时,如果分钟为零不显示分钟。

public static string GetTimeSpan(int secs)
{
    TimeSpan t = TimeSpan.FromSeconds(secs);

    string answer;
    if (secs < 60)
    {
        answer = string.Format("{0:D2}s", t.Seconds);
    }
    else if (secs < 600)//tenmins
    {
        answer = string.Format("{0:m}m:{1:D2}s", t.Minutes, t.Seconds);

    }
    else if (secs < 3600)//hour
    {
        answer = string.Format("{0:mm}m:{1:D2}s", t.Minutes, t.Seconds);
    }
    else
    {
        answer = string.Format("{0:h}h:{1:D2}m:{2:D2}s",
                                    t.Hours,
                                    t.Minutes,
                                    t.Seconds);
    }

    return answer;
}

最佳答案

类似:

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;
}

https://stackoverflow.com/questions/9292014/

相关文章:

css - 无法使用 class=pull-right 或 float :right 向右浮动 tw

python - 我应该如何在 python 中缩进三元条件运算符以使其符合 PEP8?

c - 如何打印有限数量的字符?

php - 格式化 MySQL 查询的结果,就好像它是从控制台运行的一样

powershell - 使用格式表控制列宽

python - 如何使用 .format() 打印字符串,并在替换的字符串周围打印文字花括号

visual-studio - 如何在 Visual Studio 中自动格式化 XAML 代码?

python - 在 OSX 上使用格式语言的德语数字分隔符?

formatting - 我可以在 specflow 中更改 Gherkin 格式样式吗?

formatting - .NET GUID 大写字符串格式