Я создаю приложение, которое может рассчитывать время на гребном тренажере в качестве небольшого эксперимента для себя. Используя эти уравнения, вы можете рассчитать разделение (сколько времени займет 500 м), общее расстояние или общее время ...
расстояние = (время / разделение) * 500
сплит = 500 * (время / расстояние)
время = разделение * (расстояние / 500)
расстояние показывается в метрах (это простой бит), но два раза я хочу показать его в формате mm: ss.fff (например, 2: 00.00).
Моя первая проблема : когда я пытаюсь разобрать введенную строку, используя TimeSpan parsedSplitTime = TimeSpan.ParseExact(splitInput, "c", provider);
Требуется строка ...
A) Чтобы иметь 0 перед минутой, его нельзя вводить как 2: 00.00, а как 02: 00.00, что для простоты использования не очень хорошо, и я не могу просто добавить это к строка в задаче B, например, пользователь может ввести 12 минут.
B) Я должен добавить «0,00:» в начало строки, чтобы он отформатировал
string splitInput = "0.00:" + enteredSplit.Text;
Моя вторая проблема , что я не думаю, что способ, которым я делаю мои вычисления, очень эффективен, и когда я преобразовываю его обратно в строку, чтобы поместить в текстовое поле, он не отформатирован так, как я хотел быть (см. начало поста)
Это код, который я использую для определения общего времени.
string splitInput = "0.00:" + enteredSplit.Text;
TimeSpan parsedSplitTime = TimeSpan.ParseExact(splitInput, "c", provider);
double distanceAsInt = Int64.Parse(enteredDistance.Text);
distanceAsInt = distanceAsInt / 500;
double totalTimeMilli = parsedSplitTime.TotalMilliseconds * distanceAsInt;
TimeSpan timeReadable = TimeSpan.FromMilliseconds(totalTimeMilli).;
string enteredTimeAsString = timeReadable.ToString();
enteredTimeAsString = enteredTimeAsString.Remove(0, 3);
enteredTime.Text = $"{enteredTimeAsString}.00";
Заранее всем спасибо за помощь! А если вам нужны какие-либо подробности, просто прокомментируйте и добавьте их здесь!
Входные данные вводятся вручную, но я намекнул, что их нужно вводить как 0: 00.00, но в настоящее время вам нужно сделать 00: 00.00, и я хочу, чтобы вывод был 0: 00.00
определение поставщика CultureInfo provider = CultureInfo.InvariantCulture;
вводится в виде строки