C#中的本地化字符串的时间跨度

是否有一种简单的方法(可能是内置解决方案)将TimeSpan转换为本地化字符串?例如new TimeSpan(3,5,0);将转换为3小时5分钟(仅以波兰语显示).

我当然可以创建自己的扩展程序:

    public static string ConvertToReadable(this TimeSpan timeSpan) {
        int hours = timeSpan.Hours;
        int minutes = timeSpan.Minutes;
        int days = timeSpan.Days;
        if (days > 0) {
            return days + " dni " + hours + " godzin " + minutes + " minut";
        } else {
            return hours + " godzin " + minutes + " minut";
        }
    }

但是,如果我想要适当的语法,这将变得很复杂.

解决方法:

我认为这是不可能的.您可以执行以下操作:

public static string ConvertToReadable(this TimeSpan timeSpan) { 
    return string.Format("{0} {1} {2} {3} {4} {5}",
        timeSpan.Days, (timeSpan.Days > 1 || timeSpan.Days == 0) ? "days" : "day",
        timeSpan.Hours, (timeSpan.Hours > 1 || timeSpan.Hours == 0) ? "hours" : "hour",
        timeSpan.Minutes, (timeSpan.Minutes > 1 || timeSpan.Minutes == 0) ? "minutes" : "minute");
}
上一篇:c#-以xaml格式设置TimeSpan值


下一篇:C#检查时间范围是否在时间范围和多少小时之间