|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.03.2012, 10:41 | #1 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
Для заданной даты вычислить дату через заданное число дней
Как лучше оформить функции check и check1
вот код: Код:
Для данной программы надо использовать оператор switch и структуру Последний раз редактировалось sidestep; 19.03.2012 в 11:01. |
19.03.2012, 12:56 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я, конечно, совсем не знаю C/C++
но, имхо, проверка на високосность у Вас организована НЕВЕРНО! по хорошему, она выглядит так (на Паскаль): Код:
Ну, чтобы далеко не ходить, возьмите, например, 2000 год. Он был ВИСОКОСНЫМ! поэтому или добавьте в условие високосности проверку на кратность 400 или выкиньте (совсем!) проверку на кратность 100. (тогда в диапазоне от 1601 года до 2399 года обычная банальная проверка делимости на 4 даёт ответ високосный год или нет). А вычисление даты через заданное число дней я тут на форуме давал рабочий код, правда, на языке Паскаль. Если сможете перевести на C - то рекомендую воспользоваться поиском.. |
19.03.2012, 13:21 | #3 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
2000 у меня проверяет эта часть
Код:
1 условие, если кратен 4 и не кратен 100 - високосный 2 условие, если кратен 100 и кратен 400 - високосный других вариантов не может быть, или я не прав в чем-то? пожалуйста тогда пример |
19.03.2012, 13:32 | #4 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
так видимо поиском я не умею пользоваться, можно ссылочку, если не трудно?
|
19.03.2012, 14:01 | #5 | ||||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Цитата:
а вот тут: Цитата:
Цитата:
ловите: Процедура добавления к дате определенного количества дней Последний раз редактировалось Serge_Bliznykov; 19.03.2012 в 14:06. |
||||
19.03.2012, 17:01 | #6 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
так 2012 делится на 4 и не делится на 100 - поэтому високосный
Написал Ваш код на Си, но выдает неправильный результат Вот код: Код:
У меня всегда выдает месяц под номером 3! Да я еще не писал функцию на проверку существования даты и не ставил ограничение года Не могу понять в чем ошибка, существет ли какое-нибудь различиев приоритетах операций си и паскаля? думаю, может в этом ошибка при вычислениях. |
19.03.2012, 17:01 | #7 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
вот Ваш код на Паскале:
Код:
|
19.03.2012, 21:23 | #8 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 93
|
Короче вот рабочий код:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Даны a1,b1,c1, и a2,b2,c2 которые обозначают две даты. Нужно вычислить кол-во дней между этими датами | Рафиль | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 21.10.2011 10:34 |
Подсчитать количество дней имея дату | Dj_smart | Общие вопросы Delphi | 7 | 23.03.2009 12:46 |
Отредактируйте,пожалуйста,задачу на записи, вычисляющую дату через m дней. | JiLiYa | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 26.12.2008 09:29 |
Добавление кол-во дней в дату | D@rk M@k | Общие вопросы Delphi | 1 | 19.04.2008 10:19 |
Как сделать отсчет дней от заданной даты в Excel? | ru16 | Microsoft Office Excel | 1 | 22.11.2007 11:13 |