Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/75: Рейтинг темы: голосов - 75, средняя оценка - 4.65
16 / 12 / 4
Регистрация: 10.09.2018
Сообщений: 373

Дана дата из трех чисел (день, месяц и год). Вывести yes, если такая дата существует

20.11.2018, 13:34. Показов 14011. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста написать программу. Дана дата из трех чисел (день, месяц и год). Вывести yes, если такая дата существует (например, 12 02 1999 - yes, 22 13 2001 - no). Считать, что в феврале всегда 28 дней.

Добавлено через 9 минут
Вот мой код:
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
 static void Main(string[] args)
        {
            Console.WriteLine("Введите день");
            int day = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите месяц");
            int mounth = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите год");
            int year = int.Parse(Console.ReadLine());
 
            bool yes;
 
            switch (mounth)
            {
                case 1:
                    if(day<=30)
                    {
                        a
                    }
                    break;
 
                case 2:
                    Console.WriteLine();
                    break;
                case 3:
                    Console.WriteLine();
                    break;
                case 4:
                    Console.WriteLine();
                    break;
                case 5:
                    Console.WriteLine();
                    break;
                case 6:
                    Console.WriteLine();
                    break;
                case 7:
                    Console.WriteLine();
                    break;
                case 8:
                    Console.WriteLine();
                    break;
                case 9:
                    Console.WriteLine();
                    break;
                case 10:
                    Console.WriteLine();
                    break;
                case 11:
                    Console.WriteLine();
                    break;
                case 12:
                    Console.WriteLine();
                    break;
                default:
                    Console.WriteLine("Вы ввели некорректную дату");
                    break;
 
 
            }
}
Добавлено через 1 час 2 минуты
Всё, смог сам сделать)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2018, 13:34
Ответы с готовыми решениями:

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

Дана дата в формате день:месяц:год. Определить день недели
Задание: Дана дата в формате день:месяц:год. Определить день недели.

Считать данные в формате день.месяц.год и определить существует ли эта дата или нет
От пользователя получите дату в формате день.месяц.год и определите дата действительна (если она существует в календаре). Дайте решение...

10
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16041 / 11172 / 2875
Регистрация: 21.04.2018
Сообщений: 32,827
Записей в блоге: 2
20.11.2018, 14:05
Цитата Сообщение от DragonBorn88 Посмотреть сообщение
Вот мой код:
Цитата Сообщение от DragonBorn88 Посмотреть сообщение
Всё, смог сам сделать)
А надо так
C#
1
2
3
4
5
6
7
8
9
10
11
12
            Console.WriteLine("Введите день");
            int day = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите месяц");
            int mounth = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите год");
            int year = int.Parse(Console.ReadLine());
 
            DateTime dateInp;
            if (DateTime.TryParseExact($"{day.ToString().PadLeft(2, '0')}/{mounth.ToString().PadLeft(2, '0')}/{year.ToString().PadLeft(2, '0')}", "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateInp))
                Console.WriteLine($"Введена дата {dateInp}");
            else
                Console.WriteLine("Ошибка ввода даты!");
Добавлено через 2 минуты
Ваша программа какой даст результат при вводе 31 января? А при вводе 30 февраля? А учитывает високосные годы?

Добавлено через 1 минуту
Для проверки возможности преобразования в какой-то тип данных надо использовать методы TryParse, а не изобретать велосипед...
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
20.11.2018, 14:08
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А учитывает високосные годы?
в условии явно указано что в феврале 28 дней, 29 февраля всегда должно быть невалидно)
0
16 / 12 / 4
Регистрация: 10.09.2018
Сообщений: 373
20.11.2018, 14:17  [ТС]
Вот моя программу
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
 static void Main(string[] args)
        {
            Console.WriteLine("Введите день");
            int day = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите месяц");
            int mounth = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите год");
            int year = int.Parse(Console.ReadLine());
                      
 
            switch (mounth)
            {
                case 1: //Январь
                    if (day <= 30 )
                    {
                       
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
 
                case 2: // Февраль
                    if (day <= 38 )
                    {
                        
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 3: // Май
                    if (day <= 30 )
                    {
                       
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 4: //Апрель
                    if (day < 30 )
                    {
                       
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 5: //Май
                    if (day <= 30 )
                    {
                       
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 6: //Июнь
                    if (day <= 30)
                    {
                        
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 7: //Июль
                    if (day <= 30)
                    {
                       
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 8: //Август
                    if (day <= 30)
                    {
                        
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 9: //Сентябрь
                    if (day <= 30)
                    {
                       
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 10: //Октябрь
                    if (day <= 30)
                    {
                        
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 11: //Нобрь
                    if (day <= 30)
                    {
                        
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не коректну дату");
                    }
                    break;
                case 12: //Декабрь
                    if (day <= 30)
                    {
                       
                        Console.WriteLine("Такая дата существует");
                    }
                    else
                    {
                        Console.WriteLine("Вы ввели не корректную дату");
                    }
                    break;
 
                default:
                    {
                        Console.WriteLine("Вы ввели не корректную дату");
                        
                    }
                    break;
                                        
            }                           
 
        }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16041 / 11172 / 2875
Регистрация: 21.04.2018
Сообщений: 32,827
Записей в блоге: 2
20.11.2018, 14:33
Цитата Сообщение от КОП Посмотреть сообщение
в условии явно указано что в феврале 28 дней, 29 февраля всегда должно быть невалидно)
В условии задано, а в коде проверяется на только 30

Добавлено через 1 минуту
Цитата Сообщение от DragonBorn88 Посмотреть сообщение
Вот моя программу
А сейчас у Вас в феврале до 38 дней, а в остальных только 30. Т.е. 31 января - выдаст ошибку
0
16 / 12 / 4
Регистрация: 10.09.2018
Сообщений: 373
20.11.2018, 14:34  [ТС]
Опечатка, там должно быть 28, я уже исправил
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16041 / 11172 / 2875
Регистрация: 21.04.2018
Сообщений: 32,827
Записей в блоге: 2
20.11.2018, 14:39
Если делать через switch...case..., то так
C#
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
            switch (mounth)
            {
                case 1: //Январь
                case 3: // Март
                case 5: //Май
                case 7: //Июль
                case 8: //Август
                case 10: //Октябрь
                case 12: //Декабрь
                    if (day >= 1 && day <= 31 )
                        Console.WriteLine("Такая дата существует");
                    else
                        Console.WriteLine("Вы ввели не коректну дату");
                    break;
                case 2: // Февраль
                    if (day >= 1 && day <= 28 )
                        Console.WriteLine("Такая дата существует");
                    else
                        Console.WriteLine("Вы ввели не коректну дату");
                    break;
                case 4: //Апрель
                case 6: //Июнь
                case 9: //Сентябрь
                case 11: //Ноябрь
                    if (day >= 1 && day <= 30 )
                        Console.WriteLine("Такая дата существует");
                    else
                        Console.WriteLine("Вы ввели не коректну дату");
                    break;
                default:
                        Console.WriteLine("Вы ввели не корректную дату");
                    break;
                                        
            }                           
 
        }
0
0 / 0 / 0
Регистрация: 05.12.2020
Сообщений: 1
05.12.2020, 16:20
Python
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
day = int(input("Введите число дня:"))
month = int(input("Введите число месяца:"))
year = int(input("Введите число года:"))
if month == 1 and 1 <= day <= 31 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 2 and 1 <= day <= 28 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 3 and 1 <= day <= 31 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 4 and 1 <= day <= 30 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 5 and 1 <= day <= 31 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 6 and 1 <= day <= 30 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 7 and 1 <= day <= 31 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 8 and 1 <= day <= 31 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 9 and 1 <= day <= 30 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 10 and 1 <= day <= 31 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 11 and 1 <= day <= 30 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
elif month == 12 and 1 <= day <= 31 and year > 0:
    print("Ваша дата: ",day,".",month,".",year," - существует.")
else:
    print("Еrror. Такой даты не существует")
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16041 / 11172 / 2875
Регистрация: 21.04.2018
Сообщений: 32,827
Записей в блоге: 2
05.12.2020, 17:45
vlad_22, что за офтопик на питоне?
Для питона есть другие разделы на форуме.
0
0 / 0 / 0
Регистрация: 30.01.2021
Сообщений: 1
30.01.2021, 21:19
Ребята, помогите, пожалуйста, абсолютно похожая задача дана, но с учетом високосных дней, также ещё года нашей эры считаются верными. Не понятно как switch-ом одним реализовать или как совместить с if/else if. Подскажите плз!!
0
31.01.2021, 13:24
 Комментарий модератора 
Цитата Сообщение от Vish- Посмотреть сообщение
абсолютно похожая задача дана, но с учетом високосных дней, также ещё года нашей эры считаются верными
Создайте новую тему со своим вопросом/задачей
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2021, 13:24
Помогаю со студенческими работами здесь

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

Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели
Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели. Создайте для него метод котрый бы...

Дата, год, месяц, день
/* Дата год, месяц, день от 01.01.0001 до 31.12.2999 Date Високосными являются года кратные 4 и 400, но не кратные 100 ...

Надо выводить день(дата) Программиста. В формате день/месяц/год
День программиста отмечается в 255-й день года (при этом 1 января считается нулевым днем). Требуется написать программу, которая определит...

Неполная Дата - только год, или год и месяц, или день и месяц без года
Здравствуйте уважаемые! Подскажите пожалуйста, можно ли в Access реализовать поле &quot;Дата&quot;, так же как в 1С - т.е., что бы была...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Основы OpenGL 3.3 и Qt 6.9. Трансформированный треугольник
8Observer8 27.06.2025
На русском https:/ / rutube. ru/ video/ e424497dd6b7ae7e11494027c4b31a54/ https:/ / vkvideo. ru/ video-231040171_456239019 https:/ / www. youtube. com/ watch?v=mfD-ZL7wa_4 Bastyon
Федерация аутентификации на основе JWT-токенов с Keycloak и .NET в гетерогенных инфраструктурах
ArchitectMsa 27.06.2025
Тот самый момент, когда впервые столкнулся с проблемой интеграции десятка разрозненных систем аутентификации в одной корпоративной экосистеме. Кажый сервис жил своей жизнью - тут Basic Auth, там. . .
Гайд по современным СУБД (небесспорный)
Codd 26.06.2025
Когда я только начинал свой путь в IT как рядовой программист, база данных казалась мне чем-то простым и понятным. Ну, серьезно — это же просто место, где лежат данные, верно? Напиши SELECT * FROM. . .
Использование C# с AWS S3: Примеры с AWS SDK для .NET
stackOverflow 26.06.2025
Amazon S3 (Simple Storage Service) уже давно стал стандартом де-факто в мире облачного хранения данных. Особенно приятно, что для разработчиков . NET предусмотрен отличный SDK, который значительно. . .
Веб-автоматизация с Python и Selenium
AI_Generated 25.06.2025
Selenium с Python — это комбинация, которая выдержала проверку временем. Несмотря на появление новых инструментов вроде Playwright или Puppeteer, связка Python-Selenium остаётся золотым стандартом. . .
CQRS и Event Sourcing на C#
ArchitectMsa 25.06.2025
За последние несколько лет сложность корпоративных приложений выросла в геометрической прогрессии. Простые монолитные системы уступили место распределенным микросервисам, а нагрузка на корпоративные. . .
Хак домофона или как открыть дверь по номеру
yariko 25.06.2025
Забыли дома ключ. Не проблема. Можно открыть дверь домофона, просто позвонив на свой номер квартиры. Идея состоит в следующем. Внутрь трубки абонента встраивается контроллер, который по звонку сам. . .
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »