Задать вопрос
@Den18
MYSQL, JS хобби

Возможно ли решить по другому вывод информации?

Добрый день, подскажите как проще решить такую ситуацию?
1. В textBox7 выводится время (разница между реальным временем и временем, указанным пользователем)
67961a86e8185155905405.png
Имеется таблица с данными из которой берутся значения через интервал времени
6796226283010747941770.png
Это код через который идет проверка и назначение цифр (сейчас вручную цифры вставляю)
private void MainTimer_Tick(object sender, EventArgs e)
{
DateTime localTime = DateTime.Now;
DateTime Values = dateTimePicker2.Value;
TimeSpan difference = localTime.Subtract(Values);
if (difference >= TimeSpan.FromMinutes(60) && difference < TimeSpan.FromMinutes(64))
{
    textBox6.Text = (0.585).ToString();  		
    textBox11.Text = (0.660).ToString(); 
    textBox5.Text = (5.667).ToString(); 
    textBox10.Text = (6.140).ToString(); 
} 
if (difference >= TimeSpan.FromMinutes(64) && difference < TimeSpan.FromMinutes(68))
{
    textBox6.Text = (0.585).ToString();  		
    textBox11.Text = (0.660).ToString(); 
    textBox5.Text = (5.667).ToString(); 
    textBox10.Text = (6.140).ToString(); 
    	 				
}

и т.д.
}


Каждый раз использовать сравнение времени через if(difference >= TimeSpan.FromMinutes(64)) не очень удобно.
Если надо будет проверять начиная с 1-го часа до 30-40 часов то замучаешься добавлять проверки поминутно.
Можно ли как то по другому назначать их согласно времени?

P.S. Человека не ищу, просто хочу узнать мнение других. И не надо писать про то, что за деньги сделают, но не здесь. Я и сам знаю где делают и что делают!!!!!!!!!!!!
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Взять difference.TotalMinutes, вычесть минимальный интервал (60 минут), поделить нацело на шаг таблицы (4 минуты), взять значения из соответствующей строки таблицы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Сделать декомпозицию и рефакторинг вашего алгоритма:
  1. Берёте бумажку, ручку и рисуете весь алгоритм
  2. Разбиваете алгоритм на более простые элементы и так до самого простого элемента
  3. Переработать логику алгоритма для его упрощения, скомпоновав одинаковые части в блоки (функции), классы, модули, убрав не нужное, упростив там, где возможно и т.д. и т.п.
  4. Реализовать получившийся алгоритм в виде кода

Например, вместо констант в коде использовать данные сразу из таблицы, вместо проверки каждой минуты сделать цикл и т.д. и т.п.
Ответ написан
Комментировать
@mvv-rus
Настоящий админ AD и ненастоящий программист
Простейший способ решить вашу задачу - найти того, кто ее вам решит: человека - за деньги, по дружбе и пр. - или ChatGPT и т.п. LLM. Человека искать - это не здесь (если на Хабре, за деньги - то есть раздел Freelance).

Если же вам почему-то хочется решить задачу самому, и нужна подсказка, то, прежде всего, задачу надо сформулировать, примерно - как в математике: что дано и что требуется получить. А потом - задать конкретный вопрос по тому, что мешает вам решить. Если это не сделать, то придется вам ждать помощи телепата или ясновидящего.

В частности (я не телепат, но попробую угадать), если вам мешает неудобная работа с TimeSpan, то стоит вспомнить (или узнать), что он представляет собой число фиксированных мелких промежутков времени, именуемых tick. Вы можете прочитать это число в его свойстве Ticks, работать с ним как с обычным числом - не только сравнивать, но и умножать, делить, складывать, вычитать - а потом, если надо, перевсти обратно в TimeSpan методом TimeSpan.FromTicks.

PS Если будете описывать задачу, лучше всего пользуйтесь не автоматически даваемыми названиями элементов интерфейса - dateTimePicker2, textBox6 и пр. - а названиями указывающими на их смысл - лучше всего их переименовать соответствующим образом, это - крайне рекомендованная практика при программировании вообще.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы