Чистый способ обработки форматирования TimeSpan с переменным выводом?C#

Место общения программистов C#
Anonymous
Чистый способ обработки форматирования TimeSpan с переменным выводом?

Сообщение Anonymous »

Есть ли способ отформатировать TimeSpan так, чтобы он выводил только «необходимую» информацию? Прямо сейчас у меня есть
var duration = TimeSpan.FromSeconds(90);
@$"{duration:mm' min 'ss\.f' sec'}" == "01 min 30.0 sec"

Это отлично работает, но в идеале я бы удалил min для периодов менее минуты и добавил час для периодов, превышающих 60 минут (сейчас он «переполняется» ").
Единственное, о чем я могу думать, это
if (duration > TimeSpan.FromDays(1))
{
WriteLine(@$"{duration:dd' days 'hh' hours 'mm' min 'ss\.f' sec'}");
}
else if (duration > TimeSpan.FromHours(1))
{
WriteLine(@$"{duration:hh' hours 'mm' min 'ss\.f' sec'}");
}
else if (duration > TimeSpan.FromMinutes(1))
{
WriteLine(@$"{duration:mm' min 'ss\.f' sec'}");
}
else
{
WriteLine(@$"{duration:ss\.f' sec'}");
}


Подробнее здесь: https://stackoverflow.com/questions/788 ... ble-output

Вернуться в «C#»