Вопрос 1: Через парсер получаем строку "10д 5ч". (10 дней и 5 часов) Надо ее конвертировать и получить время в часах (10*24+5) и получить число 245. Пока что идея сделать через if и замену буквы на число, но это похоже на костыль, а не решение.
Вопрос 2: Число (int) надо конвертировать в дни и часы и вывести через TextView
Что подскажете?
За время в C# отвечает TimeSpan и с ним вам стоит работать.
Считываем значение:
У таких объектов, как TimeSpan и DateTime (а также их аналоги) есть два метода (Parse и ParseExact), которые как раз и отвечают за "чтение" времени из String. Parse будет полезен тогда, когда время идет в стандартном формате (по типу hh:mm:ss). ParseExact в этом плане более гибкий и позволяет настраивать формат "парса" времени.
Воспользуемся ParseExact:
var time = TimeSpan.ParseExact("10д 5ч", "d'д 'h'ч'", null);
Здесь мы разбили входные данные, отделив обычный текст от значений самого времени. Сами же значения заменяем на нужный нам формат. Также метод требует культуру, тут уже сами думайте, нужна она вам или нет...
Получаем необходимые данные:
получить время в часах (10*24+5) и получить число 245
При использование нужного типа данных мы с легкостью можем оперировать этими данными так, как заходим. В данном случае все, что вам нужно, это узнать значение свойства TotalHours:
var totalHours = time.TotalHours;
Обратная конвертация:
Число (int) надо конвертировать в дни и часы
Для этого есть такие методы как FromHours(). Принимают они double значение и отдают TimeSpan:
var result = TimeSpan.FromHours(totalHours);
Ну а как выводить, это уже смотрите сами. Обычно используется .ToString(); который может также принимать настраиваемый формат, так что просто поиграйтесь с этим и думаю поймете.
В общем удачи в изучении C#!
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости