Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2009, 23:29   #1
Frame1992
Пользователь
 
Аватар для Frame1992
 
Регистрация: 21.09.2009
Сообщений: 31
Восклицание Задачка о календарях в C++

Товарищи форумчане, здравствуйте. Решил вам написать вот о какой задаче. С клавы задается дата в Юлианском календаре в формате d, m, y, где d - день, m - номер месяца, y - номер года. Задача заключается в том, чтобы перекодировать эту дату в Григорианский календарь. Расхождения в датах определяются тем, что в Юлианском календаре(дата по старому стилю) високосным считается тот год, который начело делится на 4 и исключений нет, а в Григорианском - те же года но кроме тех, которые делятся нацело на 100, но не делятся на 400. Заранее спасибо за помощь.

Последний раз редактировалось Frame1992; 22.09.2009 в 10:24.
Frame1992 вне форума Ответить с цитированием
Старый 22.09.2009, 09:49   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Имеется ли ограничения на вводимую дату или нужно задавать произвольную?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 22.09.2009, 09:52   #3
Frame1992
Пользователь
 
Аватар для Frame1992
 
Регистрация: 21.09.2009
Сообщений: 31
По умолчанию

Нет, ограничений на дату не имеется
Frame1992 вне форума Ответить с цитированием
Старый 22.09.2009, 09:54   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Могу предложить вариант: с начала с одного календаря все переводите в общее количество дней, а затем из этого количества переводите в нужный Вам календарь.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 22.09.2009, 10:14   #5
Frame1992
Пользователь
 
Аватар для Frame1992
 
Регистрация: 21.09.2009
Сообщений: 31
По умолчанию

Я извиняюсь, но не совсем понимаю как это записать в Си. Насколько я понял, необходимо сначала вычислить сколько дней в данном месяце - это я сделал. Вот как осуществить сам перевод?
Frame1992 вне форума Ответить с цитированием
Старый 22.09.2009, 10:20   #6
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от Frame1992 Посмотреть сообщение
...а в Григорианском (високосны) - те же года и еще те, которые делятся нацело на 100, но не делятся на 400.
Вместо и еще те на самом деле правильно — , но кроме тех.
Например, год 2000 високосный (по любому календарю из названных), а 1900 (григорианский) — простой.

(Подпись не убрал — разве мешает? Вообще есть там (моя) готовая программа на VBA. Но делать аналог на C++ — легче с нуля набить!)

Последний раз редактировалось Sasha_Smirnov; 22.09.2009 в 10:27.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 22.09.2009, 10:24   #7
Frame1992
Пользователь
 
Аватар для Frame1992
 
Регистрация: 21.09.2009
Сообщений: 31
По умолчанию

Сорри, ошибся...Спасиб, что поправили. Но зачем мне ссылка на макросы?
Frame1992 вне форума Ответить с цитированием
Старый 22.09.2009, 10:31   #8
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

А точка отсчета какая? Начало эры?
P.S. Это подпись )))
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 22.09.2009, 10:34   #9
Frame1992
Пользователь
 
Аватар для Frame1992
 
Регистрация: 21.09.2009
Сообщений: 31
По умолчанию

По идее про точку отсчета в задаче не сказано, но видимо подразумевается, что начало эры..
Frame1992 вне форума Ответить с цитированием
Старый 22.09.2009, 10:34   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Frame1992 Посмотреть сообщение
Я извиняюсь, но не совсем понимаю как это записать в Си. Насколько я понял, необходимо сначала вычислить сколько дней в данном месяце - это я сделал. Вот как осуществить сам перевод?
Ну сколько дней в году? Сколько из них високосных? месяцы можно просто по таблицы - к примеру 5 месяцев это столько-то дней, а 4 месяца столько-то. Сначала тебе нужно вводимую дату полностью перевести в дни.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка по С++ Ready Помощь студентам 2 20.05.2009 01:19
задачка lucky Помощь студентам 1 07.05.2009 13:49
Задачка на С!!! Exorcist Помощь студентам 1 07.12.2008 21:15
Задачка Claster Помощь студентам 2 24.09.2008 17:53