Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 3

Проверить на самом ли деле строка задает дату

13.04.2010, 19:20. Показов 2331. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить:
Задача на использование символьных величин.
Задана строка символов, которая должна вмещать дату в формате ДД/ММ/ГГГГ.
Проверить на самом ли деле эта строка задает дату.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.04.2010, 19:20
Ответы с готовыми решениями:

На самом деле #define'а нету.
На самом деле #define нету. Вот например если мы напишем в c++ #define yes 1 #define no 0 то на самом деле мы получим int yes=1; ...

Быстробот - на самом деле БЫСТРО!!!
Уже второй раз удивлен оперативностью Яндекса!!! Начинаю двигать сайт - на следующий день Яндекс его индексирует. Двигал - только...

Число double 0.1 на самом деле не 0.1
Кто сталкивался с таким глюком, почему если я задаю double x=0.1; в дебаггере я его вижу как 0.10000000000000001 ? я знал что float...

10
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
13.04.2010, 21:58
ну можно в лоб:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
Private Sub Комманда1_Click()
Dim A() As String
Dim S() As String
S = Split("31/12/1000/3600", "/") ' года от 1000-до3600 поставить любые
Dim J, OT
OT = "Может быть датой"
A = Split(Текст1.Text, "/")
        For J = 0 To 2
                Select Case J
                Case 0, 1
                If Val(A(J)) > Val(S(J)) Then OT = "Не может быть датой"
                Case 2
                If Val(A(J)) < Val(S(J)) Or Val(A(J)) > Val(S(J + 1)) Then OT = "Не может быть датой"
                End Select
        Next J
MsgBox OT
End Sub
0
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
13.04.2010, 22:32
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub a()
On Error GoTo Err_
'b = CDate("äâåíàäöàòîå апреля ñåãî ãîäà")
'b = CDate("12/04/10")
'b = CDate("12 квітень 2010")
 
b = CDate("12.04.10")
MsgBox b
 
Exit_:
    Exit Sub
Err_:
    MsgBox IIf(Err.Number = 13, "ýòî íå äàòà!", Err.Description)   ' Type mismatch
    Resume Exit_
End Sub
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
13.04.2010, 22:40
В вопросе стоял разделитель"/"
Попробовал подставить
Visual Basic
1
b = CDate("35/04/10")
Интересно получается
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
14.04.2010, 00:43
PureBasic
1
Label1 = IsDate(Text1.Text)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
14.04.2010, 00:56
Форматов дат много. функция принимает оба за правильные
52/12/12
12/12/52
А для меня первая непривычна.
0
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
14.04.2010, 02:55
Лучший ответ Сообщение было отмечено как решение

Решение

ага. и так тоже хорошо работает
Visual Basic
1
2
CDate("4:35:47 PM")
CDate(6589)
. выходит эта функция конвертирует что попало в дату. удобно. но не в этом случае. твой код тоже нуждается в дополнительных проверках.
попробую предложить еще так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub dat()
'd = "äâåíàäöàòîå àïðåëÿ ñåãî ãîäà"
'd = "12 êâ³òåíü 2010"
'd = "-12/-04/2010"
'd = "1,2/5.4/2010"
'd = "35/04/10"
'd = "12/04/10"
d = "12/04/2010"
dd = Split(d, "/")
If IsDate(d) And UBound(dd) = 2 Then
    If IsNumeric(dd(0)) And IsNumeric(dd(1)) And IsNumeric(dd(2)) Then
        If CDate(d) = DateSerial(dd(2), dd(1), dd(0)) Then
            MsgBox CDate(d)
            Exit Sub
        End If
    End If
End If
MsgBox "ýòî íå ïîõîæå íà äàòó ÄÄ/ÌÌ/ÃÃÃÃ"
End Sub
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
14.04.2010, 07:15
Ну да в моём пимере может быть и 31 февраля. Я не делал дополнительных проверок, но показал, как можно решить вопрос без использования стандартнх функций работы со временем
0
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 3
23.04.2010, 09:55  [ТС]
не подскажете какая тут будет блок схема?
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.11.2010, 11:33
Вот эта штука:
Visual Basic
1
CDate
хорошая.
0
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 5
21.03.2014, 15:36
Исправьте предыдущую программу с учетом точного количества дней в месяце (февраль - 28 дней). У меня просто добавлено еще одно подзадание.Ответьте плиз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2014, 15:36
Помогаю со студенческими работами здесь

Какая на самом деле частота процессора?
Купил процессор AMD Phenom II X6 1075T. система кажет 803 мгц. должно ж быть 3000мгц. ASROCK TUNER 3500 МГЦ. CPU-Z 803 МГЦ. Чему верить? И...

А есть ли этот вИЦ на самом деле?
Мне кажется, все наслышаны о пресловутом вИЦ Яндекса и очень многие сломали головы как этот вИЦ поднять и т.п. ... Вот короткая...

Что такое ссылка на самом деле?
Здравствуйте. Насколько я понимаю, ссылка - это переменная, которая на самом деле является указателем на адрес другой переменной, но с...

ошибки которых на самом деле нет
possible use of идентификатор before diffinotion(С++) у меня в компиляторе возникает такое предупреждение, хотя все переменные объявлены...

Что такое string на самом деле?
Всем привет! Столкнулся с проблемой и никак не могу разобраться. Мне необходимо из строки string str получить unsignet char* для...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru