Из секунд - часы, минуты и секунды. Из минут - часы, минуты - C#

Узнай цену своей работы

Формулировка задачи:

        private void button4_Click(object sender, EventArgs e)
        {
            if (textBox3.Text == "")
            {
                textBox3.Text = "0";
            }
            if (textBox4.Text == "")
            {
                textBox4.Text = "0";
            }
            if (textBox5.Text == "")
            {
                textBox5.Text = "0";
            }
 
            int consec;
            consec = Convert.ToInt32(textBox5.Text);
            consec = int.Parse(textBox5.Text);
 
            int secparce = consec;
            int hours = (secparce / 60) / 60;                   //Получаем ЧАСЫ из СЕКУНД
            textBox3.Text = Convert.ToString(hours);            //Добавляем высчитаное время в textbox ЧАСОВ.
            int sec1 = secparce - (hours * 60 * 60);            //Получаем Остаток СЕКУНД если вычесть ЧАСЫ
 
            int minuts = sec1 / 60;                             //Получаем МИНУТЫ из Оставшихся СЕКУНД
            textBox4.Text = Convert.ToString(minuts);           //Добавляем высчитаное время в textbox МИНУТ.
 
            int seconds = sec1 - (minuts * 60);                 //Получаем СЕКУНДЫ от Остатка СЕКУНД после вычета ЧАСА и МИНУТ
 
            textBox5.Text = Convert.ToString(seconds);          // Добавляем высчитаное время в textbox СЕКУНД.

            h = Convert.ToInt32(textBox3.Text);                 // Конвертируем в int для работы в таймере.
            m = Convert.ToInt32(textBox4.Text);
            s = Convert.ToInt32(textBox5.Text);
            timer1.Start();
        }
В общем все основное вот тут
            int consec;
            consec = Convert.ToInt32(textBox5.Text);
            consec = int.Parse(textBox5.Text);
 
            int secparce = consec;
            int hours = (secparce / 60) / 60;                   //Получаем ЧАСЫ из СЕКУНД
            textBox3.Text = Convert.ToString(hours);            //Добавляем высчитаное время в textbox ЧАСОВ.
            int sec1 = secparce - (hours * 60 * 60);            //Получаем Остаток СЕКУНД если вычесть ЧАСЫ
 
            int minuts = sec1 / 60;                             //Получаем МИНУТЫ из Оставшихся СЕКУНД
            textBox4.Text = Convert.ToString(minuts);           //Добавляем высчитаное время в textbox МИНУТ.
 
            int seconds = sec1 - (minuts * 60);                 //Получаем СЕКУНДЫ от Остатка СЕКУНД после вычета ЧАСА и МИНУТ
 
            textBox5.Text = Convert.ToString(seconds);          // Добавляем высчитаное время в textbox СЕКУНД.
В общем так этот таймер работает только от секунд которые вставлены в "textBox5.Text" Что логично. От минут и часов - сразу все становится по 0 (если в секундах 0) - что тоже логично. Я знаю что нужно добавить чтоб взять значения с textbox4 и textbox5. Но мой мозг категорически не хочет понимать как добавить это все сюда. НУЖНО: Просто последовательно конвертировать секунды в минуты и вычесть конвертируемые секунды из секунд, а минуты в часы и вычесть конвертируемые минуты из минут. ЧТОБ: если в часах - 0, в минутах - 0, в секундах - 10000 (ТО) получилось 2 в часах, 46 в минутах, 40 в секундах (сейчас работает). если в часах - 0, в минутах - 10000, в секундах - 0 (ТО) получилось 166 в часах, 10 в минутах, 0 в секундах. если в часах - 10000, в минутах - 0, в секундах - 0 (ТО) получилось 10000 в часах, 0 в минутах, 0 в секундах.

Решение задачи: «Из секунд - часы, минуты и секунды. Из минут - часы, минуты»

textual
Листинг программы
            var tssec = TimeSpan.FromSeconds(Convert.ToDouble(textBox3.Text));
            var tsmin = TimeSpan.FromMinutes(Convert.ToDouble(textBox2.Text));
            var tshor = TimeSpan.FromHours(Convert.ToDouble(textBox1.Text));
            var tsday = TimeSpan.FromDays(0);
 
            var tsall = tssec + tsmin + tshor + tsday;
 
            textBox1.Text = Convert.ToString(tsall.Hours + tsall.Days*24);
            textBox2.Text = Convert.ToString(tsall.Minutes);
            textBox3.Text = Convert.ToString(tsall.Seconds);
            //label1.Text = Convert.ToString(tsall.Days);
            //int horadd, horadd1;
                //horadd1 = Convert.ToInt32(tsall.Days);
            //if (horadd1 > 0)
            //{
                //horadd = horadd1 * 24;
                //textBox1.Text = Convert.ToString(horadd);
            //}

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы