![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
![]()
Доброго времени суток!
Вкратце - прога должна считать промежуток времени между двумя введенными датами. Проблема еще на стадии проверки корректности даты. Работаю в среде codeBlocks. Отлаживал прогу ее де средствами + печать с помощью printf где надо проверить определенное значение. * дата в формате dd/mm/yyyy. первым делом функция isValidDate проверяет значение yyyy (находиться ли в пределах..) - тут то и проблема. По не понятным мне причинам значение параметра/переменной года yyyy спокойно проходит с любым введенным значением ![]() Код:
|
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
1) Некоторые комментарии сломались.
2) В isValidDate самый последний return должен быть 0. 3) Стоит добавить в scanf слеши, если дата вводится с ними. 4) Количество дней в месяце нужно проверять на "меньше или равно", а не только на неравенство. 5) Проверка на високосный год работает неверно (например, 2020 год).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 | ||||
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
![]()
Извиняюсь это иврит ))
Цитата:
Цитата:
Цитата:
Цитата:
*спс за быстрый и четкий ответ п.с например если ввести 12 12 65 (а год должен быть в рамках от 1800 - 2200) то эти данные спокойно пропускаються и сразу же идет прыжок к return 1; Последний раз редактировалось JOFRIF; 01.06.2020 в 01:33. Причина: добавка |
||||
![]() |
![]() |
![]() |
#4 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Извиняюсь, не знал, как выглядит иврит.
Хорошо, тогда не хватает парочки return внутри ифов и по веткам else. Может быть лучше "вывернуть" логику? Код:
Код:
Цитата:
Код:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 01.06.2020 в 01:47. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
![]()
Поправил все что вы сказали... но проверка на високосный год не работает корректно.
например я ввел 29/02/2000 (это високосный год т.е return 1, а пофакту идет возврат 0) п.с пробовал оба варианта. Код:
|
![]() |
![]() |
![]() |
#6 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,847
|
![]()
Можно чуть упростить:
Код:
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
![]()
Arigato, Спасибо действительно можно укоротить, но проблема в самой проверке.
Код:
|
![]() |
![]() |
![]() |
#8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
В коде из 5 поста isLeapYear вызывается с 3 аргументами, а сама функция объявлена с одним.
Предлагаю вынести ввод в отдельную функцию. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 21.04.2008
Сообщений: 164
|
![]()
BDA, ЁЁЁЁЁЁЁЁЁ А слона то я и незаметил )) странно что компилятор молчит об этом..
спасибо за ответы, закончю функцию calc_between_dates выложу здесь может кому пригодиться. |
![]() |
![]() |
![]() |
#10 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,847
|
![]()
Неверно... проверили...
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проверка даты (Java) | zhenya.ya | Помощь студентам | 0 | 04.12.2011 19:28 |
Проверка даты | daniil123 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 17.11.2011 22:14 |
Проверка корректности даты | Oleg Romanchuk | Общие вопросы Delphi | 3 | 09.07.2011 07:13 |
Проверка даты на сервере!!! | $T@LKER | Работа с сетью в Delphi | 0 | 11.05.2010 17:03 |
Проверка даты | Михаил Юрьевич | Общие вопросы Delphi | 11 | 24.01.2010 20:39 |