Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм календаря, Загнать календарь в программу 
:(
    Опции темы
Politexnik
Дата 5.3.2008, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Ереван, Армения

Репутация: нет
Всего: нет



Здравствуйте!!!

Когда смотришь на наш календарь, невольно приходит мысль о том, что есть некий алгоритм его построения. Ведь дни недели данного месяца каждый год двигаются на один день вперед.
После високосных годов передвигаются аж на два дня, и т.д. Попытался как-то всунуть это в концепцию С++, но не очень то получилось. Буду рад, если ВЫ мне подскажите, как это реализовать.
Это НЕ вопрос "жизни и смерти" (как любят многие говорить).
Просто ради интереса.

Заранее благодарен!
PM MAIL   Вверх
JackYF
Дата 5.3.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(Politexnik @  5.3.2008,  16:36 Найти цитируемый пост)
ак это реализовать.

что реализовать? в чём проблема?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Politexnik
Дата 5.3.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Ереван, Армения

Репутация: нет
Всего: нет



Дорогой  JackYF
Проблема в самом построении алгоритма!
К примеру то же передвижение дня недели изо года в год.
Можно сунуть в цикл???
Можно!!!
Только как сделать так, чтоб через каждые 4 года день перепрыгивал на два шага вперед???
Или дни месяца...
Как сделать чередование месяцев с 30 и 31 днями(ведь в чередующихся июле и августе по 31 дню в каждом). Не говорю про февраль со своими 28 днями и этим
високосным днем. 
Саму схему построения и вывода месяца можно сделать матрицей.
Это понятно.
А как же остальное???
PM MAIL   Вверх
bsa
Дата 5.3.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



воспользуйся функцией localtime и будет тебе счастье.
PM   Вверх
Politexnik
Дата 5.3.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Ереван, Армения

Репутация: нет
Всего: нет



Цитата

воспользуйся функцией localtime и будет тебе счастье.



Можно немножечко поподробнее???
PM MAIL   Вверх
bsa
Дата 5.3.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(Politexnik @ 5.3.2008,  21:07)
Можно немножечко поподробнее???

http://www.google.com/search?q=man+localtime -> http://linux.die.net/man/3/localtime
PM   Вверх
Politexnik
Дата 5.3.2008, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Ереван, Армения

Репутация: нет
Всего: нет



Спасибо,  bsa.
Но неужели это значит, что НЕЛЬЗЯ на С++ написать алгоритм календаря??? smile 
Цитата

и будет тебе счастье.

Счастье будет когда я САМ (или с Вашей помощью) напишу алгоритм календаря smile 
PM MAIL   Вверх
bsa
Дата 5.3.2008, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



http://www.cs.umd.edu/~khennacy/research/cell/calendar.pdf

Алгоритмы не пишутся на Си/Си++ или других языках. Алгоритмы пишутся на псевдоязыках. И если у тебя вопрос по алгоритмам, то тебе в другой раздел.
PM   Вверх
andfurs
Дата 6.3.2008, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.2.2008

Репутация: нет
Всего: нет



 попробуй в вики набрать ВЕЧНЫЙ КАЛЕНДАРЬ, там будут таблицы по которой можно вычислить дни недели в районе 2500 лет.
PM MAIL   Вверх
Dmi3ev
Дата 6.3.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



алгоритм примерно такой, берешь один день, в котором ты точно уверен, например 6.03.08 - четверг. затем допустим тебе надо определить что за день недели 13.03.08 для этого тебе нужно разность дат разделить на 7 (кол-во дней недели). если остаток от деления 0, значит -четверг, если 6 -среда, если 5 - вторник и т.д. а каждый четвертый раз добавлять дату 29 февраля. если же ты и даты не хочешь использовать, а все хочешь написать сам, то можно и другое предложить)

Добавлено через 58 секунд
забыл написать что разность дат нужно делить на 7)))) извини


--------------------

PM MAIL   Вверх
bsa
Дата 6.3.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Dmi3ev, а то что год делящийся нацело на 100 високосным не является, а те что делятся на 1000 являются ты учел?

Это сообщение отредактировал(а) bsa - 6.3.2008, 11:47
PM   Вверх
virtual09
Дата 6.3.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @  6.3.2008,  11:46 Найти цитируемый пост)
а то что год делящийся нацело на 100 високосным не является

а что разве 2000, или 1900 не являются високосными ?
PM MAIL   Вверх
Dmi3ev
Дата 6.3.2008, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



я про год ничего не говорил, кроме того, что сейчас он високосный и мы это знаем, каждые 4 года он високосный, тоже знаем, соответственно можно в цикле сделать условие, что каждый 4 раз 29 февраля будет. просто не совсем понятно, что именно человек хочет. ведь можно тупо пользоваться функциями С++ или установить билдер и кинутьDateTimePicker на форму))))))))))))

Добавлено через 2 минуты и 46 секунд
bsa, действительно, 1900 и 2000 не високосные????? я про это ничего не знаю и virtual09 тоже, поясни????


--------------------

PM MAIL   Вверх
bsa
Дата 6.3.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(virtual09 @ 6.3.2008,  11:59)
Цитата(bsa @  6.3.2008,  11:46 Найти цитируемый пост)
а то что год делящийся нацело на 100 високосным не является

а что разве 2000, или 1900 не являются високосными ?

1900 не является (делится на 100). 2000 является (делится на 400, я ошибся когда сказал 1000): http://ru.wikipedia.org/wiki/Високосный_год
PM   Вверх
Dmi3ev
Дата 6.3.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



спасибо, к своему стыду не знал, честно признаюсь. bsa, спасибо!!! значит надо добавить и эти условия с делением года 100 и 400, и задача решится.
bsa, ещё раз спасибо, никак не думал (может, потому что не жил в 1900)))))))


--------------------

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1277 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.