Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 25.01.2022
Сообщений: 44

Создать метод изменения времени на заданное количество лет, минут и секунд

29.03.2022, 12:07. Показов 857. Ответов 4
Метки с# (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять как создать правильно метод, чтобы при нажатие на кнопку "+1" значение в textBox каждый раз увеличивалось на единицу и допустим когда ввели время "23:59:59" и снова нажали на +1 счет начинался з самого начала. Подскажите, пожалуйста, уже пару дней голову ломаю.
Form1.cs
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
using System;
 
using System.Windows.Forms;
 
namespace проба
{
    public partial class Form1 : Form
    {
        public  Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Date new_date;
 
            new_date = new Date(int.Parse(textBox1.Text), int.Parse(textBox2.Text), int.Parse(textBox3.Text));
 
            resultbox.Text += "Время ";
            resultbox.Text += new_date.GetInformation + Environment.NewLine;
 
        }
 
       private void button2_Click(object sender, EventArgs e)
       {
 
        }
 
    }
}
Class2.cs
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
56
57
58
59
60
61
62
63
using System;
using System.Windows.Forms;
 
namespace проба
{
    class Date
    {
        private static int hours = 0;
        private static int minuts = 0;
        private static int seconds = 0;
 
        public Date(int hours, int minuts, int seconds)
        {
            SetTime(hours, minuts, seconds);
        }
 
 
        public void SetTime(int hours, int minuts, int seconds) {
            Hours = hours;
            Minutes = minuts;
            Seconds = seconds;
        }
 
        public static int Hours
        {
            get { return hours; }
            set
            {
                if (value > 24 || value < 0)
                    throw new Exception("Ошибка");
                else hours = value;
            }
        }
        public static int Minutes
        {
            get { return minuts; }
            set
            {
                if (value > 60 || value < 0)
                    throw new Exception("Ошибка");
                else minuts = value;
            }
        }
        public static int Seconds
        {
            get { return seconds; }
            set
            {
                if (value > 60 || value < 0)
                    throw new Exception("Ошибка");
                else seconds = value;
            }
        }
 
        public string GetInformation
        {
            get { return $"{hours}:{minuts}:{seconds}"; }
        }
 
       
    }
   
}
Миниатюры
Создать метод изменения времени на заданное количество лет, минут и секунд  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.03.2022, 12:07
Ответы с готовыми решениями:

Определить по времени T (в секундах) содержащееся в нем количество часов, минут и секунд
Написать программу, определяющую по времени T (в секундах) содержащееся в нем количество часов H, минут M и секунд S. Найти количество...

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

Найти количество часов, минут и секунд для пяти данных отрезков времени
Задача: Описать процедуру Tim(T, H, M, S), определяющую по времени T (в секундах) содержащееся в нем количество часов H, минут M и секунд...

4
 Аватар для iLinks
800 / 458 / 237
Регистрация: 03.01.2017
Сообщений: 1,339
29.03.2022, 18:35
Лучший ответ Сообщение было отмечено Olga562 как решение

Решение

Думаю разберетесь. Если будут вопросы, пишите.
Кликните здесь для просмотра всего текста

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
public partial class Form3 : Form
{
    class Time
    {
        private int hours = 0;
        [Range(0, 23, ErrorMessage = "Значение часа должно быть в диапазоне {1}-{2}")]
        public int Hours
        {
            get { return hours; }
            set
            {
                if (hours + 1 == value && value > 23) { hours = 0; }
                else { hours = value; }
            }
        }
 
        private int minutes = 0;
        [Range(0, 59, ErrorMessage = "Значение минут должно быть в диапазоне {1}-{2}")]
        public int Minutes
        {
            get { return minutes; }
            set
            {
                if (minutes + 1 == value && value > 59) { minutes = 0; Hours++; }
                else { minutes = value; }
            }
        }
 
        private int seconds = 0;
        [Range(0, 59, ErrorMessage = "Значение секунд должно быть в диапазоне {1}-{2}")]
        public int Seconds
        {
            get { return seconds; }
            set
            {
                if (seconds + 1 == value && value > 59) { seconds = 0; Minutes++; }
                else { seconds = value; }
            }
        }
        public override string ToString() { return $"{Hours}:{Minutes}:{Seconds}"; }
    }
    Time time = new Time();
    public Form3()
    {
        InitializeComponent();
        UpdateTextBoxes();
    }
    /// <summary>
    /// Событие всех "+1" баттонов.Click
    /// </summary>
    private void AddOne_Click(object sender, EventArgs e)
    {
        switch (((Button)sender).Name)
        {
            case "button1"://кнопка +1 для часов
                time.Hours++;
                break;
            case "button2"://кнопка +1 для минут
                time.Minutes++;
                break;
            case "button3"://кнопка +1 для секунд
                time.Seconds++;
                break;
        }
        UpdateTextBoxes();
    }
    /// <summary>
    /// Кнопка "вывести"
    /// </summary>
    private void button4_Click(object sender, EventArgs e)
    {
        time = new Time()
        {
            Hours = int.Parse(textBox1.Text),
            Minutes = int.Parse(textBox2.Text),
            Seconds = int.Parse(textBox3.Text)
        };
        if (!TimeValidate()) { return; }
        resultbox.Text += $"Время {time}{Environment.NewLine}";
    }
    /// <summary>
    /// Проводит валидацию времени
    /// </summary>
    /// <returns>true время прошло валидацию; false не прошло</returns>
    /// <remarks>Выводит в результирующий текстбокс ошибки</remarks>
    private bool TimeValidate()
    {
        var results = new List<ValidationResult>();
        var context = new ValidationContext(time);
        bool validate = Validator.TryValidateObject(time, context, results, true);
        if (!validate)
        {
            foreach (var error in results)
            {
                resultbox.Text += error.ErrorMessage + Environment.NewLine;
            }
        }
        return validate;
    }
    private void UpdateTextBoxes()
    {
        textBox1.Text = time.Hours.ToString();
        textBox2.Text = time.Minutes.ToString();
        textBox3.Text = time.Seconds.ToString();
    }
}
1
0 / 0 / 0
Регистрация: 25.01.2022
Сообщений: 44
29.03.2022, 20:34  [ТС]
Почему-то компилятор на List<ValidationResult>, ValidationContext, Validator ругается.
Вот что говорит:
The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'ValidationResult' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'ValidationContext' could not be found (are you missing a using directive or an assembly reference?)
The name 'Validator' does not exist in the current context
0
 Аватар для iLinks
800 / 458 / 237
Регистрация: 03.01.2017
Сообщений: 1,339
29.03.2022, 21:33
Olga562, добавьте недостающие using
0
0 / 0 / 0
Регистрация: 25.01.2022
Сообщений: 44
29.03.2022, 22:01  [ТС]
Спасибо большое) Вы сэкономили мои нервы и время
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2022, 22:01
Помогаю со студенческими работами здесь

Определить количество месяцев, дней, часов, минут и секунд до запуска космического корабля на текущий момент времени
Всем доброго времени суток!!:) Прошу помощи с программой. Для клуба любителей авиации и космонавтики написать программу расчета...

Функция перевода секунд в соответствующее количество часов, минут, секунд
Написать программу, в которой пользователь задаѐт количество секунд. Это значение передаѐтся в процедуру, которая переводит секунды в...

Описать процедуру time (x, y ,z) вычисляющую количество минут У и секунд Z, по введенному количеству секунд Х
Описать процедуру time (x, y ,z) вычисляющую количество минут У и секунд Z, по введенному колич секунд Х ( х входной, у и z выходные...

Работа с функцией. Дано количество часов, минут и секунд с начала суток. Вычислить общее количество секунд с начала суто
Дано количество часов, минут и секунд с начала суток. Вычислить общее количество секунд с начала суток. Сколько процентов от общей...

С клавиатуры вводится количество секунд, вернуть прошедшее время в формате суток, часов, минут, секунд
Помогите справиться с задачей: С клавиатуры вводится количество секунд, прошедших с запуска некоторого процесса. Определить функцию,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru