Главное меню

Новости:

SMF - Just Installed!

Формула для нахождения дня недели в математике?

Автор la perola barr, Март 15, 2024, 06:16

« назад - далее »

la perola barr

Как это решить Формула для нахождения дня недели в математике?.

Стрым

Чтобы найти день недели математически необходимо пронумеровать все дни недели
так, чтобы следующий день недели был на 1 больше предыдущего, начиная с 1:
1-понедельник,2-вторник,3-среда,4-четверг,5-пятница,6-суббота,7-воскресенье
Чтобы найти день недели дня, отстоящего на N дней подойдет формула D₁=D+(N mod 7)
если надо определить какой день недели был раньше известного дня то остаток будет отрицательным и возможно получение отрицательного числа D₁
D₁=D+(остаток отделения N на 7)
если D₁ >  7 то D₁=D₁-7
если D₁ <  0 то D₁=D₁+7
где D₁- искомый день недели, а D - день недели известного дня отстоящего на N дней
Пример
16 февраля 2017 года - четверг D=4
Ищем  день недели 5 марта 2017 года
05-03-2017 - 16-02-2017=17 дней
остаток от деления 17 на 7 равен 3
D₁=4+(остаток отделения N на 7)=4+3=7 - воскресенье
Ищем  день недели 8 марта 2017 года
08-03-2017 - 16-02-2017=20 дней
остаток от деления 20 на 7 равен 6
D₁=4+(остаток отделения N на 7)=4+6=10
D₁ > 7 получаем D₁=D₁-7=10-7=3 это среда
Ищем  день недели 16 февраля 2017 года,
зная что 8 марта 2017 года - среда D=3
N=-20 остаток от деления 20 на 7 равен 6 берём с обратным знаком равно -6
D₁=3+(-6)=-3
D₁ < 0 получаем D₁=D₁+7=-3+7=4 это четверг
                                                                              

la perola barr

Точную формулу не вспомню, но вроде = 1 + (x mod 7)
чтобы понять - нужно знать какой день недели 1 января
это "смещение"
например 12 января
сначала нужно знать смещение
Например,
1 января 2017 года = воскресенье, то есть 7
значит 12 января
день_недели = день_года + смещение - 1 = 12 + 7 - 1 = 18
день_недели = 18 % 7 = 4 = четверг
если месяц не январь, то учитывать надо дни предыдущего месяца
день_года = 16 февраля = 31 (январь) + 16 - 1 = 46
день_недели = 46 % 7 = 4 = четверг