【发布时间】:2017-07-26 17:01:10
【问题描述】:
我正在写这个问题,因为我正在寻求最好的方法来做到这一点。我的程序中有很多这样的,我想创建一个方法将包含一秒计时器的 Int32 转换为格式良好的字符串。
例如,如果我的计时器 int 是在,让我们说一个像 16429 这样的随机数 应该是:
4 hours, 32 minutes and 9 seconds
如果是 600,那就是:
10 minutes
如果是60,那就是
1 minute
如果是172801,那就是
2 days and 1 second
如果是32,那就是
32 seconds
我希望“分钟”、“秒”和“天”等每个单词末尾的“s”仅在不等于 1 时放置 S,因此实际上不需要发音正确。我也只希望在需要时添加天数和小时数以及其他内容,因此如果计时器以秒为单位低于 1 天,它只会显示小时、分钟和秒,或需要的内容。
实现这样的目标的最佳方法是什么?我在下面有这个功能,但它非常混乱,最多只能达到几分钟和几秒钟,而不是几小时或几天:
public static string GetConvertedTime(int timer)
{
int Minutes = timer / 60;
int Seconds = timer - Minutes * 60;
if (timer < 60)
{
string secs = (Seconds != 1) ? "s" : "";
return "" + timer + " second" + secs;
}
else
{
if (Seconds < 1)
{
string mins = (Minutes != 1) ? "s" : "";
return "" + Minutes + " minute" + mins;
}
else
{
string mins = (Minutes != 1) ? "s" : "";
string secs = (Seconds != 1) ? "s" : "";
return "" + Minutes + " minute" + mins + " and " + Seconds + " second" + secs;
}
}
}
最好的方法是什么?
【问题讨论】:
标签: c# .net datetime system.timers.timer