Нужен собственно алгоритм расчета календаря.
Например как в винде c 1980 по 2099 год.
Есть идея сварганить его для спека (вернее для Фени).
Нужен собственно алгоритм расчета календаря.
Например как в винде c 1980 по 2099 год.
Есть идея сварганить его для спека (вернее для Фени).
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Есть другой алгоритм, попроще и работает как раз в указанном диапазоне дат. Алгоритм следующий:
1) Из текущей даты нам надо получить количество дней прошедших от 1 января 1900 года. (этот день выпал на пн.)
2) Полученное число разделить на 7 - получаем день недели.
Скрытый текст
Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
ZX Evolution Rev B.
Color 48 + Beta Disk Interface +FDD+YM2149F
Орель-08БК
Pentagon-48 (недоссобранный кем-то)
Pentagon-128 (полуубитый)
Кворум-128 (в ремонте)
Магик-05 (в ремонте)
Robotron 1715
Корвет ПК8020 и ПК8010
Amstrad CPC 464
Amstrad CPC 6128[свернуть]
У меня была программа календаря даже на МК-52. Именно с её помощью я узнал, что родился в четверг.
Скрытый текст
Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
ZX Evolution Rev B.
Color 48 + Beta Disk Interface +FDD+YM2149F
Орель-08БК
Pentagon-48 (недоссобранный кем-то)
Pentagon-128 (полуубитый)
Кворум-128 (в ремонте)
Магик-05 (в ремонте)
Robotron 1715
Корвет ПК8020 и ПК8010
Amstrad CPC 464
Amstrad CPC 6128[свернуть]
Mick, Стандартный алгоритм
Январь — это 1, декабрь — 12 месяц. Для определения сдвига используется следующая формула: a=(14-месяц) div 12 (a — вспомогательная величина). Затем определяются год и месяц с учётом поправки: y=год-a (год — увеличиваем на 1 от исходного). m=месяц+12·a-2.
После вспомогательных операций вычисляется сам день недели:
result=(7000+(день+y+y div 4-y div 100+y div 400+(31×m) div 12)) mod 7
Для юлианского календаря формула выглядит так:
result=(6998+(день+y+y div 4+(31×m) div 12)) mod 7
Результат — число от 0 до 6, где 0 — воскресенье, 1 — понедельник, 2 — вторник, 3 — среда, 4 — четверг, 5 — пятница, 6 — суббота.
http://ru.wikipedia.org/wiki/%C2%E5%...ED%E4%E0%F0%FC
Когда есть, но не знаешь где - это все равно, что нету.
Во пищи для размышления подкинули
Спасибо, буду разбираться теперь.
А кто-нибудь эту тестил?
http://zxpress.ru/book_articles.php?id=562
(ветер дует отсюда: http://zxpress.ru/book_articles.php?id=325)
Последний раз редактировалось Destr; 18.04.2012 в 21:05.
Mick, есть такая книжка: 128 советов начинающему программисту. Там тоже есть примеры программы "вечный календарь" (описание всех вариантов, дано в конце книжки)..
Последний раз редактировалось null_device; 18.04.2012 в 21:38.
Когда есть, но не знаешь где - это все равно, что нету.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)