Вопрос 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#!
Я хочу сделать, чтоб при вводе данных в C# не выполнялся переход на новую строку в консоли, это возможно? Например, чтоб консоль выглядела не так:
Как программно в dataGridView сделать поле ComboBox?
пишу приложение WPF с веб сервисом wfc, в веб сервесе модель базы данных entity framework, когда пытаюсь передать запрос из клиента на добавление записи...