Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
1

Ноль впереди цифры в таймере

03.12.2020, 17:34. Показов 1742. Ответов 6

Author24 — интернет-сервис помощи студентам
Добрый вечер!
Написал таймер, и вроде бы если цифра меньше 10, то добавляет в начало цифры 0. Но проблема в следующем.. Когда
и секунд и минут меньше 10 одновременно, то ноль на время исчезает из минут, а потом появляется, с часами тоже самое. И так постоянно дергается туда сюда
Не могу пофиксить.
Помогите пожалуйста!

Прикрепил код таймера:

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
                if (sec != 00) //сам таймер
                {        
                    Convert.ToInt32(sec--);
                }
                else
                {
                    min--;
                    sec = 59;
                }
                if (min == 00 && hour != 00)
                {
                    hour--;
                    min = 59;
                }
 
                else if (min == 00 && hour == 00 && sec == 00)
                {
                    timer1.Stop();
                    MessageBox.Show("Время вышло!");
                    hour = 00;
                    min = 00;
                    sec = 00;
                }
 
 
                else if (sec < 10) //добавление нулей спереди
                {
                    s = string.Format("{0}:{1}:0{2}", hour, min, sec);
                    label1.Text = s;
                }
                else if (min < 10 && sec < 10)
                {
                    s = string.Format("{0}:0{1}:0{2}", hour, min, sec);
                    label1.Text = s;
                }
                else if (hour < 10 && sec < 10)
                {
                    s = string.Format("0{0}:{1}:0{2}", hour, min, sec);
                    label1.Text = s;
                }
                else if (min < 10)
                {
                    s = string.Format("{0}:0{1}:{2}", hour, min, sec);
                    label1.Text = s;
                }
                else if (hour < 10)
                {
                    s = string.Format("0{0}:{1}:{2}", hour, min, sec);
                    label1.Text = s;
                }
               
                else
                {
                    label1.Text = Convert.ToString(hour + ":" + min + ":" + sec);
                }
Были попытки сделать по другому, но так же ничего не вышло:
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
38
39
40
41
42
43
44
45
                if (sec < 10 && min > 10 && hour > 10)
                {
                    Ssec = sec.ToString("0#");
                    label1.Text = Convert.ToString(hour + ":" + min + ":" + Ssec);
                }
                else if (sec > 10 && min < 10 && hour > 10)
                {
                    Smin = min.ToString("0#");
                    label1.Text = Convert.ToString(hour + ":" + Smin + ":" + sec);
                }
                else if (sec == 10 && min < 10 && hour > 10)
                {
                    Smin = min.ToString("0#");
                    label1.Text = Convert.ToString(hour + ":" + Smin + ":" + sec);
                }
                else if (sec > 10 && min > 10 && hour < 10)
                {
                    Shour = hour.ToString("0#");
                    label1.Text = Convert.ToString(Shour + ":" + min + ":" + sec);
                }
                else if (sec < 10 && min < 10 && hour > 10)
                {
                    Ssec = sec.ToString("0#");
                    Smin = min.ToString("0#");
                    label1.Text = Convert.ToString(hour + ":" + Smin + ":" + Ssec);
                }
                else if (sec < 10 && min > 10 && hour < 10)
                {
                    Ssec = sec.ToString("0#");
                    Shour = hour.ToString("0#");
                    label1.Text = Convert.ToString(Shour + ":" + min + ":" + Ssec);
                }
                else if (sec > 10 && min < 10 && hour < 10)
                {
                    Smin = min.ToString("0#");
                    Shour = hour.ToString("0#");
                    label1.Text = Convert.ToString(Shour + ":" + Smin + ":" + sec);
                }
                else if (sec < 10 && min < 10 && hour < 10)
                {
                    Ssec = sec.ToString("0#");
                    Smin = min.ToString("0#");
                    Shour = hour.ToString("0#");
                    label1.Text = Convert.ToString(Shour + ":" + Smin + ":" + Ssec);
                }
Изображения
  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2020, 17:34
Ответы с готовыми решениями:

Ведущий ноль в таймере
Добрый день. Подскажите, как в скрипте добавить ведущий ноль в числа? &lt;p id='clock'&gt;&lt;/p&gt;...

Ведущий ноль в таймере
Добрый день. Опять нужна помощь умельцев и гениев. таймер. Можно сделать ведущий ноль в этом...

Заменить цифры 0,1..9 на слова ноль, один...девять
Помогите перевести на C#. Программа меняет в текстовом файле цифры 0,1..9 на слова ноль,...

Консольное приложение Заменяет во введенной с клавиатуры строке цифры (0-9) словами «ноль», «один», …, «девять»
Помогите, пожалуйста, необходимо написать консольное приложение для решения такой задачи Заменяет...

6
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
03.12.2020, 19:05 2
ErritoQN, всё гораздо проще. Чтобы добавить ноль слева нужно пользоваться форматированием чисел:
C#
1
string.Format("{0:d2}",3)
даст тебе 03
1
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
03.12.2020, 20:46  [ТС] 3
Цитата Сообщение от ViterAlex Посмотреть сообщение
ErritoQN, всё гораздо проще. Чтобы добавить ноль слева нужно пользоваться форматированием чисел:
C#
1
string.Format("{0:d2}",3)
даст тебе 03
А что значит "d2"?
0
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
03.12.2020, 20:59 4
ErritoQN, значит, что в выводимом числе должно быть как минимум два знака. См. тут
1
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
03.12.2020, 21:20  [ТС] 5
Проверил, работает только так:
C#
1
2
3
4
5
else if (sec < 10) //добавление нулей спереди
                {
                    s = string.Format("{0}:{1}:0{2}", hour, min, sec);
                    label1.Text = s;
                }
Но проблема осталась, ноль то появляется, то пропадает.
0
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
03.12.2020, 21:30 6
Лучший ответ Сообщение было отмечено ErritoQN как решение

Решение

Цитата Сообщение от ErritoQN Посмотреть сообщение
работает только так
ну потому что неправильно:
C#
1
s = string.Format("{0:d2}:{1:d2}:{2:d2}", hour, min, sec);
1
2 / 2 / 0
Регистрация: 15.12.2019
Сообщений: 61
03.12.2020, 21:38  [ТС] 7
Ох, спасибо большое!
Получилось
0
03.12.2020, 21:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2020, 21:38
Помогаю со студенческими работами здесь

Преобразование слов в цифры ("Ноль" = 0)
забыл как это делать.к примеру,пишу слово &quot;ноль&quot; выдать должно &quot;0&quot;...

Построить ε-НКА, допускающий язык, состоящий из цепочек, имеющих ноль или несколько а, ноль или несколько b, ноль или несколько с.
Построить ε-НКА, допускающий язык, состоящий из цепочек, имеющих ноль или несколько а, ноль или...

Сделать, чтобы при попытке деления на ноль, выводилось сообщение: «Деление на ноль»
Создайте консольное приложение. В нем реализуйте нахождение значения выражения 1/(x+n), где n –...

Если в матрице встречается ноль, то нужно обнулить столбец и строку, где находится этот ноль
Дан двумерный массив n на m. Если в массиве встречается ноль, то нужно обнулить столбец и строку...

Нужно сделать чтобы при делении на ноль, выводило На ноль делить нельзя, введите другое число
Я сделал, на ноль то он не делит, но когда ввожу другие значение, то там тоже выводится Делить на...

Как сделать ноль результатом деления на ноль?
Народ, подскажите пожалуйста как сделать, чтоб при делении на ноль результат был равен нулю, а не...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru