Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 07.05.2021
Сообщений: 3

Ввод даты и проверка на правильность

22.12.2021, 17:22. Показов 1793. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день, не могу справиться с задачей: нужно в одной функции ввести свою дату рождения, вида dd.mm.yy, в другой проверить правильность её заполнения. Желательно через switch-case. Ввод даты сделала такой, но может вы предложите что-то получше.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void vvod_data()
{
    int mm, dd, yy;
    cout << "Введите число: ";
    cin >> dd;
 
    cout << "Введите месяц: ";
    cin >> mm;
 
    cout << "Введите год: ";
    cin >> yy;
 
    return;
}
Как я хочу сделать, но у меня недостаточно знаний по этому поводу:
C++
1
2
3
4
switch(months)
{
case 1: if mm=={1,3,5,7,8,10,12}
if(dd>0 && dd<=31)
это просто идея, как хотелось бы реализовать, поэтому прошу помощи, как бы сделать это красиво)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2021, 17:22
Ответы с готовыми решениями:

Ввод и проверка на правильность пароля
Использую функцию _getch(); Если пароль соответствует всем требованиям то посимвольно заношу в массив, а на экран вывожу звездочку. В этом...

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

Проверка на правильность заполнения даты
Страница с html-формой со следующими полями: Фамилия Имя; адрес электронной почты; адрес web-ресурса по нажатию на ...

1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6092 / 2785 / 1037
Регистрация: 01.06.2021
Сообщений: 10,176
22.12.2021, 18:51
Лучший ответ Сообщение было отмечено Vshnvskk как решение

Решение

Vshnvskk, а как же февраль и високосные года?

Добавлено через 50 минут
Я бы так сделал:

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
#include <iostream>
using namespace std;
 
class Date
{
private:
    int m_day;
    int m_month;
    int m_year;
    bool date = true;
public:
    Date(int day, int month, int year)
    {
        if (year >= 1970)
            m_year = year;
        else date = false;
        if (month >= 1 && month <= 12)
            m_month = month;
        else date = false;
        if (m_month == 2)
        {
            if (m_year % 4 == 0)
            {
                if (day >= 1 && day <= 29) m_day = day;
                else date = false;
            }
            else
            {
                if (day >= 1 && day <= 28) m_day = day;
                else date = false;
            }
        }
        else if (m_month == 4 || m_month == 6 || m_month == 9 || m_month == 11)
        {
            if (day >= 1 && day <= 30) m_day = day;
            else date = false;
        }
        else
        {
            if (day >= 1 && day <= 31) m_day = day;
            else date = false;
        }
            
    }
    void print()
    {
        if (date)
            cout << m_day << "." << m_month << "." << m_year << "\n";
        else cout << "Invalid date\n";
    }
};
 
 
int main()
{
    Date today(22, 12, 2021);
    today.print();
    Date date1(220, 13, 1967);
    date1.print();
    Date date2(28, 2, 2021);
    date2.print();
    Date date3(29, 2, 2021);
    date3.print();
    Date date4(29, 2, 2024);
    date4.print();
    Date date5(31, 4, 2022);
    date5.print();
    Date date6(13, 50, 2022);
    date6.print();
    Date date7(31, 12, 2022);
    date7.print();
}
Вывод:

C++
1
2
3
4
5
6
7
8
22.12.2021
Invalid date
28.2.2021
Invalid date
29.2.2024
Invalid date
Invalid date
31.12.2022
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2021, 18:51
Помогаю со студенческими работами здесь

Проверка на корректный ввод даты
помогите придумать исключения для даты class date { public double x { get; set; } public double y { get; set; }...

Хитрая проверка на ввод даты
Всем здравствуйте. Помогите, пожалуйста с таким моментом. Занялся написанием приложения, которое бы считало стаж работы человека....

Проверка MaskEdit на ввод полной даты
Добрый день! Вопрос по поводу проверки введена ли полная дата в MaskEdit: Есть MaskEdit с маской на дату MaskEdit1-&gt;EditMask =...

ввод даты дд.мм.гггг и проверка существует ли она ( например 30 февраля )
помогите с кодом , ни как не разберусь а завтра экзамен (( Вводим дд.мм.гггг с помощью регулярного выражения ,а потом делаем проверку...

Через форму вводится лента формата даты, например (02.04.1978). Разработать сценарий, который проверяет правильность введенной даты.
Через форму вводится лента формата даты, например (02.04.1978). Разработать сценарий, который проверяет правильность введенной даты. ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru