Как отформатировать время так, чтобы все лишнее отсекалось?
Есть такой код:
DateTime starttime = DateTime.UtcNow;
...
TimeSpan ts = DateTime.UtcNow - starttime;
...
Label1.Text = ts.TotalSeconds.ToString("00:##");
Но при таком форматировании выводит следующее: Прошло: 00.30, а мне бы хотелось чтобы время само считало, нужно ему добавить часы или убрать минуты, вот так: Прошло: 1 час 20 минут 34 секунды. А когда час еще не наступил или минута, то вот так: Прошло: 50 минут 29 секунд или Прошло: 45 секунд. Можно ли это как-то реализовать?
Ответы (1 шт):
Автор решения: Aleksandr Fetisov
→ Ссылка
Да можно
TimeSpan elapsed = DateTime.UtcNow - starttime;
string message = "Прошло: ";
if (elapsed.TotalHours >= 1)
{
message += $"{(int)elapsed.TotalHours} час {(int)elapsed.Minutes} минут {(int)elapsed.Seconds} секунд";
}
else if (elapsed.TotalMinutes >= 1)
{
message += $"{(int)elapsed.TotalMinutes} минут {(int)elapsed.Seconds} секунд";
}
else
{
message += $"{(int)elapsed.TotalSeconds} секунд";
}
Label1.Text = message;