1 / 1 / 0
Регистрация: 27.03.2014
Сообщений: 68
1

Написать программу, проверяющую правильность ввода даты

02.06.2014, 00:24. Показов 2229. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, проверяющую правильность ввода даты (формат ввода: дд.мм.гг):
- введено нужное количество символов;
- дд и мм являются числами;
- 1 <= дд <= 31;
- 1<= мм <=12.
В случае неправильного ввода заставить пользователя повторить ввод. Если ввод прошел успешно, то введенная дата должно выдаваться в окне сообщения в виде списка:
День: дд;
Месяц: мм;
Год: гг.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2014, 00:24
Ответы с готовыми решениями:

Написать программу, проверяющую правильность ввода даты
Написать программу, проверяющую правильность ввода даты (формат ввода: дд.мм.гг): - ...

Проверить правильность ввода в TextBox даты и времени
Подскажите пожалуйста, как проверить правильность введения в текстбокс Даты и времени, то есть что...

Написать программу, проверяющую правильность расстановки скобок
1 «Арифметическое выражение». Исходные данные - арифметическое выражение. Написать программу,...

Написать программу определяющую правильность даты, введенной с клавиатуры
Написать программу, определяющую правильность даты, веденной с клавиатуры (число от 1 до 31, месяц-...

13
6937 / 2843 / 547
Регистрация: 19.10.2012
Сообщений: 8,697
02.06.2014, 01:04 2
31.02.14 - нормально будет?
Ну что числа они все, и что дд-мм в пределах нормы - можно проверить.
Но затем ещё бы нужно проверить на
If IsDate(s) Then
но в s добавьте год в формате гггг - иначе VBA примет и 31.02.14
0
1 / 1 / 0
Регистрация: 27.03.2014
Сообщений: 68
02.06.2014, 01:15  [ТС] 3
Вы можете программу готовлю написать?
0
5 / 5 / 1
Регистрация: 06.04.2012
Сообщений: 38
02.06.2014, 10:04 4
Лучший ответ Сообщение было отмечено annysven как решение

Решение

Привет!
Можно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Test()
Dim Str, Mass() As String
Do
    Str = InputBox("Введите дату, в числовом формате.", "Ввод даты", Date)
    If IsDate(Str) = True Then
        Mass = Split(Str, ".")
        MsgBox "День: " & Mass(0) & vbCrLf & "Месяц: " & Mass(1) & vbCrLf & "Год: " & Mass(2)
        Exit Do
    Else
        If MsgBox("Введено ошибочное значение!" & vbCrLf & "Повторить ввод?", vbYesNo) = vbNo Then
            Exit Do
        End If
    End If
Loop
End Sub
0
6937 / 2843 / 547
Регистрация: 19.10.2012
Сообщений: 8,697
02.06.2014, 10:27 5
S.V.I.N., 31.02.14 - нормальная дата?
0
5 / 5 / 1
Регистрация: 06.04.2012
Сообщений: 38
02.06.2014, 13:01 6
код работает верно, если указана полная дата (29.02.2014) - в этом случае обработка идет нормально.
Ну а что бы отбросить "обрезанные даты" (29.02.14) - достаточно включить проверку на длину даты (всегда должно быть равно 10 символам)

Visual Basic
1
2
3
if len (str) <> 10 then
   msgbox "Ошибка"
end if
0
6937 / 2843 / 547
Регистрация: 19.10.2012
Сообщений: 8,697
02.06.2014, 13:04 7
Про полную дату я уже говорил:
Цитата Сообщение от Hugo121 Посмотреть сообщение
добавьте год в формате гггг - иначе VBA примет и 31.02.14
А в задаче требую вводить "формат ввода: дд.мм.гг" - так что в коде этот момент нужно обработать.
0
призрак
3263 / 891 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
02.06.2014, 15:03 8
а зачем?
если год задан в формате гг, то VBA воспринимает годы от 0 до 29 как принадлежащие 21 веку и от 30 до 99 - 20 веку.
0
6937 / 2843 / 547
Регистрация: 19.10.2012
Сообщений: 8,697
02.06.2014, 15:08 9
Саша, а ты проверь этот код с 31.02.14
0
призрак
3263 / 891 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
02.06.2014, 15:15 10
пришлось запускать эксель. проверил. прокатывает.
даже "65.02.14" прокатывает.
молодчина VBA!

пс. заодно проверил: isdate("02.22.2014")
true, ессно!
так что никаких isdate. никому нельзя верить!
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
02.06.2014, 20:42 11
Не считая трений Busine2009 и Sasha_Smirnov, тоже в тему: Написать программу, проверяющую правильность ввода даты.

Не по теме:

Цитата Сообщение от Hugo121 Посмотреть сообщение
Саша, а ты…
Рад узнать, что мы с ikki тёзки!

0
Hugo121
02.06.2014, 22:54
  #12

Не по теме:

Вообще-то строго говоря он Александр - и может совсем и не Саша... Надеюсь Александр меня простит за вольность :)

0
ikki
02.06.2014, 23:02
  #13

Не по теме:

да лан, чё :D

0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
03.06.2014, 10:26 14
Когда-то занимался вопросом. Помоему не без глюков, но вроде пощёлкал, работает
Вложения
Тип файла: rar Работа с датами.rar (35.5 Кб, 20 просмотров)
0
03.06.2014, 10:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2014, 10:26
Помогаю со студенческими работами здесь

Дана некоторая дата D в формате ДД/ММ/ГГ. Составить логическую функцию, проверяющую правильность даты
Помогите пожалуйста! Дана некоторая дата D в формате ДД/ММ/ГГ. Составить логическую функцию,...

Написать функцию, проверяющую правильность имени в языке Pascal
Написать функцию, проверяющую правильность имени в языке Pascal.

Правильность ввода даты
Всем привет. Хотелось бы узнать способ проверки правильности формата введенной даты в строке....

Написать рекурсивную функцию, проверяющую правильность расстановки круглых скобок в строке
Написать рекурсивную функцию, проверяющую правильность расстановки круглых скобок в данной строке.


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

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

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