25900 авторів і 91 редактор відповіли на 98952 питання,
розмістивши 129771 посилання на 81900 сайтів, приєднуйтесь!

Реклама партнерів:

Як за датою обчислити день тижня?

РедагуватиУ обранеДрук

Коли під рукою немає календаря, для того щоб визначити, який сьогодні день тижня, можна скористатися наступним алгоритмом:

1. Позначимо число, місяць і рік відповідно d, m і y.

2. Якщо m le- 2 (Тобто місяць січень або лютий), то рік зменшимо на 1, а число збільшимо на 3:

y: = y-1

d: = d + 3

3. Тепер номер дня тижня (w) Обчислюється за такою формулою:

w: = 1 + [d + y + y / 4 - y / 100 + y / 400 + (31m + 10) / 12] mod 7-

(Всі операції ділення - цілочисельні, тобто береться ціла частина частного- mod - операція отримання залишку від ділення).

Результатом буде ціле число в діапазоні від 1 до 7, відповідне днях тижня від неділі до суботи (1 - понеділок, 2 - вівторок, 3 - середа, 4 - четвер, 5 - п'ятниця, 6 - субота, 7 - неділя).

Даний алгоритм отриманий модифікацією широко відомого алгоритму вичсіленія дня тижня.

Переваги модифікованого алгоритму:

  • не вимагає використання допоміжних змінних;
  • зручний у мовах програмування, що використовують передачу параметрів за значенням;
  • дає результат, відповідний російської традиції нумерації днів тижня, починаючи з понеділка.

Алгоритм працює в межах застосовності григоріанського календаря.

Приклади:

1. Поточна дата: 27.09.2009

d = 27;

m = 9;

y = 2009;

Оскільки m> 2, відразу переходимо до п.3

w = 1 + [27 + 2009 + 2009/4 - 2009/100 + 2009/400 + (31 * 9 + 10) / 12] mod 7 =

= 1 + [27 + 2009 + 502 - 20 + 5 + 24] mod 7 = 1 + 6 = 7 - Неділя.

2. Поточна дата: 31.01.1968

d = 31;

m = 1;

y = 1968;

Оскільки m le- 2, введемо корекцію:

y = 1967;

d = 34;

Тепер обчислюємо:

w = 1 + [34 + 1967 + 1967/4 - 1967/100 + 1967/400 + (31 * 1 + 10) / 12] mod 7 =

= 1 + [34 + 1967 + 491 - 19 + 4 + 3] mod 7 = 1 + 2 = 3 - Середа.

Посилання:

  • Алгоритм обчислення дня тижня - Вікіпедія.

Додатково:

  • Як за датою визначити день тижня?
  • Що таке григоріанський календар?
  • Чому в різні роки одна і та ж дата припадає на різні дні тижня?
  • Де знайти астрономічний календар?
  • Як самому розрахувати дату Пасхи?

Реклама партнерів:

РедагуватиУ обранеДрук

Схожі питання


«Як за датою обчислити день тижня?»

В інших пошукових системах:

GoogleЯndexRamblerВікіпедія

» » Як за датою обчислити день тижня?