Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
cxs23d
0 / 0 / 1
Регистрация: 24.08.2017
Сообщений: 9
1

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

26.08.2017, 11:10. Просмотров 2239. Ответов 6

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
        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();
        }
В общем все основное вот тут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            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 в секундах.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2017, 11:10
Ответы с готовыми решениями:

Перевод секунд в часы, минуты и секунды
Подскажите, пожалуйста, как можно перевести секунды в часы, минуты и секунды? Например, из 21 355...

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента ...

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента ...

Написать функцию, получающую часы, минуты, секунды, и возвращающую сколько секунд прошло с полудня
Напишите функцию, которая получает время в виде трех целых аргументов (часы, минуты, секунды) и...

Округлить время (часы, минуты, секунды) до часов, минут или до часов
Всем привет! Нужна помощь с исправлением программы на c#. По заданию нужно округлить время (часы,...

6
diadiavova
4049 / 1443 / 445
Регистрация: 11.04.2015
Сообщений: 2,662
Записей в блоге: 35
26.08.2017, 13:06 2
cxs23d, используй TimeSpan
C#
1
2
            var ts = TimeSpan.FromSeconds(12345);
            Console.WriteLine($"12345 секунд равно {ts.Hours} часам, {ts.Minutes} минутам и {ts.Seconds} секундам.");
Их, кстати, складывать и вычитать можно.
1
cxs23d
0 / 0 / 1
Регистрация: 24.08.2017
Сообщений: 9
26.08.2017, 14:37  [ТС] 3
diadiavova, Я не знаком с timespan.
Но в итоге получил такое
C#
1
2
3
4
5
6
7
8
9
        private void button1_Click(object sender, EventArgs e)
        {
            var ts = TimeSpan.FromSeconds(Convert.ToDouble(textBox3.Text));
            Console.WriteLine($"12345 секунд равно {ts.Hours} часам, {ts.Minutes} минутам и {ts.Seconds} секундам.");
 
            textBox1.Text = Convert.ToString(ts.Hours);
            textBox2.Text = Convert.ToString(ts.Minutes);
            textBox3.Text = Convert.ToString(ts.Seconds);
        }
Только это для введенных данных в textbox3. - Тогда он конвертирует секунды в минуты и часы. А если введено в textbox2, а textbox3=0 ? Тут как поступить?
0
diadiavova
4049 / 1443 / 445
Регистрация: 11.04.2015
Сообщений: 2,662
Записей в блоге: 35
26.08.2017, 14:47 4
cxs23d, Ну я ведь не зря упомянул, что их можно складывать. Создай для каждого текстбокса отдельный тайспан, сложи их все и используй результат.
0
cxs23d
0 / 0 / 1
Регистрация: 24.08.2017
Сообщений: 9
26.08.2017, 15:13  [ТС] 5
diadiavova,
C#
1
2
3
4
5
6
7
           var tssec = TimeSpan.FromSeconds(Convert.ToDouble(textBox3.Text));
            var tsmin = TimeSpan.FromSeconds(Convert.ToDouble(textBox2.Text));
            var tshor = TimeSpan.FromSeconds(Convert.ToDouble(textBox1.Text));
 
            textBox1.Text = Convert.ToString(tshor.Hours + tsmin.Hours + tssec.Hours);
            textBox2.Text = Convert.ToString(tshor.Minutes + tsmin.Minutes);
            textBox3.Text = Convert.ToString(tssec.Seconds);
Я все-равно не понял(( Не получается.

Добавлено через 8 минут
diadiavova,
C#
1
2
3
4
5
6
7
8
9
            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 tsall = tssec + tsmin + tshor;
 
            textBox1.Text = Convert.ToString(tsall.Hours);
            textBox2.Text = Convert.ToString(tsall.Minutes);
            textBox3.Text = Convert.ToString(tsall.Seconds);
А если так - то минуты не правильно пересчитывает в часы... из 10000 минут - стало 22 часа 40 минут
0
diadiavova
4049 / 1443 / 445
Регистрация: 11.04.2015
Сообщений: 2,662
Записей в блоге: 35
26.08.2017, 15:29 6
Лучший ответ Сообщение было отмечено cxs23d как решение

Решение

Цитата Сообщение от cxs23d Посмотреть сообщение
А если так - то минуты не правильно пересчитывает в часы... из 10000 минут - стало 22 часа 40 минут
Дело в том, что там еще дни есть. Их ты не учел. Просто проверяй Days, если там больше нуля, то добавляй к часам значение этого свойства, умноженное на 24

Добавлено через 3 минуты
textBox1.Text = Convert.ToString(tsall.Hours + tsall.Days*24);
1
cxs23d
0 / 0 / 1
Регистрация: 24.08.2017
Сообщений: 9
26.08.2017, 15:54  [ТС] 7
diadiavova,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            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);
            //}
Надо же было все усложнить Спасибо...

Добавлено через 2 минуты
diadiavova, Если убрать + tsall.Days*24
Убрать //label1.Text = Convert.ToString(tsall.Days);
И убрать все "//"
- то в принципе тоже работает
0
26.08.2017, 15:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2017, 15:54

Организовать перевод величин: часы, минуты, секунды
Делаю конвертер величин. Есть два ComboBox (comboBox1 и comboBox2). У каждого есть коллекция...

Ввод времени и разбивка на часы, минуты, секунды
Всем доброго дня суток. Задача: Описать подпрограмму IncTime (H, M, S, T), которая увеличивает на...

Перевести секунды в часы, минуты, секунды
С начала суток прошло 20000 секунд (или другое количество). Сколько это часов, минут, секунд?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru