Дізнатися, на який день тижня припадає та чи інша дата в минулому, сьогоденні або майбутньому, можна за допомогою так званого вічного календаря. Виготовити такий прилад можна в домашніх умовах.
Інструкція
- Виготовте сім карток-календарів на один місяць, у першому з яких місяць починається з понеділка, в другому — з вівторка, в третьому — з середи і так далі до календаря, в якому місяць починається з неділі. Дайте картках номери від 1 до 7, причому перший номер привласніть календарем, у якому місяць починається з понеділка. Зробіть ці картки з щільного картону, піддайте їх ламінації, адже календар розрахований на зберігання і використання протягом багатьох років.
- Також включіть в комплект вічного календаря картку з наступною формулою:
ч = д + ((13м-1) / 5) + г + (г / 4) + (в / 4)-2в, де:
- Ч — проміжний результат, що підлягає подальшому перетворенню;
- Д — дата;
- М — місяць, обраний дещо незвичним чином: березень — перший місяць, лютий — дванадцятий;
- Г — останні дві цифри номера року (якщо місяць — січень або лютий, то попереднього року);
- В — номер століття, з якого віднята одиниця (для січня або лютого замість одиниці віднімайте двійку).
Цю картку також виготовте з щільного картону і піддайте ламінації. Скріпіть всі картки між собою, щоб вони не загубилися. Зробіть для вічного календаря зручний футляр, при бажанні, у ньому ж зберігайте та калькулятор відповідного розміру. - Провівши обчислення за вказаною формулою, результат год поділіть на сім з залишком.
- Візьміть модуль від залишку поділу.
- Візьміть картку з номером, рівним результату останнього обчислення, після чого по ній визначте день тижня.
- При бажанні, складіть програму для здійснення обчислень по обидва формулам на будь-якому відомому вам мовою програмування. При цьому, однак, може представляти трудність ділення з залишком, оскільки готової функції для цього в більшості мов програмування немає. Найзручніше скористатися мовою Паскаль, в якому відповідна функція є. Щоб знайти цілу частину результату ділення із залишком, скористайтесь рядком такого вигляду:
c: = a div b.
Для того ж, щоб знайти залишок від ділення, скористайтеся рядком іншого виду:
c: = a mod b.