Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Max D
0 / 0 / 0
Регистрация: 02.09.2015
Сообщений: 17
1

Определить, является ли год високосным

21.10.2015, 20:39. Просмотров 874. Ответов 13
Метки нет (Все метки)

Вот вроде бы и все просто, но никак не выходит одна проверка, на високосный год.

А именно, есть 2 текстовых поля и 1 комбобокс, нужно сделать так, чтобы при выборе февраля и введенном году например 2016 можно было вводить в поле day от 1-29, а при введенном году 2017 только от 1-28...

vb.net
1
2
3
4
5
6
7
Public Function checking7(textfield As Integer) As Boolean
        ' *********** Проверка для февраля месяца, если высокос тогда февраль до 28, иначе до 29***************
        If Form1.ComboBox1.SelectedItem(1) And Form1.s_year.Text \ 4 And Form1.s_bday.Text Like "[1-29]" Then
            Return True
        Else
            MsgBox("В феврале высокостного года, может быть только 29 дней")
        End If
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Function chec2(text As String)
            Dim y As Integer
            Dim i As Integer
            Dim c As String
            c = Form1.ComboBox1.SelectedText
           i = Form1.s_bday.Text
            y = Form1.s_year.Text
           If i = 29 And y / 4 And c = "Февраль" Then
                Return i
            Else
                MsgBox("В феврале високосного года не может быть 29 дней!", vbCritical, "Error")
               chec2 = False
            End If
 
        End Function
вот некоторые мучения, но все не работает, из за клац-клац моих.

нуждаюсь в переделке.

p.s. ах, да. и вызывать её где надо будет на батон.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2015, 20:39
Ответы с готовыми решениями:

Определить, является ли год високосным
подскажите как делать напишите программу, которая выполяет следующие действия: 1) с помощью...

Определить, является ли год N високосным
Сделать программу на Visual Basic в виде Console Application: Дано натуральное число n-год...

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

Определить является ли год високосным
Пользователь вводит год, определить является ли он високосным (год является високосным в двух...

13
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
21.10.2015, 20:54 2
Определить, является ли год N високосным
1
Памирыч
Почетный модератор
21163 / 8892 / 1080
Регистрация: 11.04.2010
Сообщений: 11,012
21.10.2015, 21:11 3
Если быть точнее, то
vb.net
1
MsgBox(Date.IsLeapYear(Now.Year))
(пост 5 той темф, что указал _Лёша_)

А то есть вероятность наскочить на велосипеды, что там разъезжают
2
Max D
0 / 0 / 0
Регистрация: 02.09.2015
Сообщений: 17
21.10.2015, 21:21  [ТС] 4
Ага, т.е. мне нужно будет сделать так:

vb.net
1
2
3
4
5
If Form1.s_bday.Text Like "[1-29]" And Form1.ComboBox1.SelectedItem(1) And Date.IsLeapYear(Form1.s_year.Text) Then
            checking7 = True
        Else
            checking7 = False
end if
Чтобы при введенном числе 29 и выбранном феврале месяце, ... блин, что-то я сам не понимаю что пишу.

Если введено 29 и выбран месяц февраль, и год високосный, тогда возвращает правду.
иначе
ложь.
Или как лучше будет?

ps что такое? Object variable or With block variable not set.
0
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
21.10.2015, 21:39 5
на форме button1, label1 и DateTimePicker1
vb.net
1
2
3
4
5
6
7
    Sub Button1Click(sender As Object, e As EventArgs)
        If Date.IsLeapYear(DateTimePicker1.Value.Year) Then
            label1.Text = "Високосный"
        Else
            label1.Text = "Невисокосный"
        End If
    End Sub
0
Max D
0 / 0 / 0
Регистрация: 02.09.2015
Сообщений: 17
22.10.2015, 00:20  [ТС] 6
Попробую перефразировать свой вопрос. Вообщем нужно

запретить ввод чисел 29 - больше, если выбран февраль и год не високосный,
запретить ввод чисел 28 - больше, если выбран февраль и год високосный.

Буду заранее благодарен.
0
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
22.10.2015, 06:18 7
Max D, Запретить ввод куда???
0
TigerHawk
25 / 25 / 9
Регистрация: 19.08.2014
Сообщений: 75
22.10.2015, 09:13 8
Цитата Сообщение от Max D Посмотреть сообщение
запретить ввод чисел 29 - больше, если выбран февраль и год не високосный,
запретить ввод чисел 28 - больше, если выбран февраль и год високосный.
Если вопрос стоит так, то приведенный выше код можно переделать так:
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
        Dim y As Integer
        Dim i As Integer
        Dim c As String
        c = ComboBox1.SelectedItem 'Здесь не SelectedText
        i = s_bday.Text
        y = s_year.Text
 
        If Date.IsLeapYear(y) And c = "Февраль" And i > 28 Then
            MsgBox("В феврале високосного года не может быть больше 28 дней!", vbCritical, "Error")
        ElseIf c = "Февраль" And i > 29 Then
            MsgBox("В феврале не високосного года не может быть больше 29 дней!", vbCritical, "Error")
        End If
Но, тут надо учитывать, что при таком подходе надо дополнительно проверять правильность ввода других данных. То есть в каком-то месяце максимум 30 дней, в каком-то 31. День и год надо вводить цифрами, а не буквами, т.е. "5", а не "пятое". Будет возникать ошибка, если какое-то поле пустое.

Самое простое решение - взять элемент DateTimePicker и дату выбирать с помощью него, а не городить огород.
2
XIST
1194 / 910 / 124
Регистрация: 01.10.2009
Сообщений: 2,730
Записей в блоге: 1
22.10.2015, 17:23 9
Цитата Сообщение от TigerHawk Посмотреть сообщение
Самое простое решение - взять элемент DateTimePicker и дату выбирать с помощью него, а не городить огород.
А когда препод (что в 95% случаев) скажет, описать это машинным кодом, а не используя готовые (не вами) контролы ?
0
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
22.10.2015, 17:35 10
XIST, дак текстбоксы и т.д.тоже не нами писаны.
0
XIST
1194 / 910 / 124
Регистрация: 01.10.2009
Сообщений: 2,730
Записей в блоге: 1
22.10.2015, 17:48 11
Цитата Сообщение от _Лёша_ Посмотреть сообщение
XIST, дак текстбоксы и т.д.тоже не нами писаны.
Правильно, поэтому многие и требуют в консоли, где все описывается
1
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
22.10.2015, 17:54 12
XIST, Автор начел писать код с использованием listbox, но DateTimePicker здесь правильнее использовать будет. Объяснять все равно придется.
0
Замабувараев
COM‐пропагандист
388 / 388 / 97
Регистрация: 18.12.2014
Сообщений: 812
Записей в блоге: 1
22.10.2015, 22:56 13
Цитата Сообщение от XIST Посмотреть сообщение
Правильно, поэтому многие и требуют в консоли, где все описывается
Консоль тоже не вами писана. Напишите операционку, потом консоль.
0
TigerHawk
25 / 25 / 9
Регистрация: 19.08.2014
Сообщений: 75
23.10.2015, 08:28 14
Цитата Сообщение от XIST Посмотреть сообщение
А когда препод (что в 95% случаев) скажет, описать это машинным кодом, а не используя готовые (не вами) контролы ?
При чем тут препод? Если у автора вопроса стоит задача использовать именно текстбоксы и комбобокс, то я привел пример решения задачи с ними. Это если вдруг суровый препод будет оценивать решение. А если автор делает что-то для себя, то логичнее использовать более подходящие элементы для поставленной задачи. Что опять же только совет, а не указания к действию. Каким путем идти автор сам решит.
1
23.10.2015, 08:28
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2015, 08:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить, является ли год високосным
Помогите найти ошибку. Не считает какой-то год.В первую строку вывести YES если год с номером N...

Определить, является ли год високосным
Требуется определить, является ли данный год високосным. (Напомним, что год является високосным,...

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

Определить, является ли год високосным
Помогите пожалуйста))) очень нужно) Написать программу, которая проверяет, является ли год...


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

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

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