Как да изчислите деня от седмицата на която и да е година

Стъпка 1

Подгответе информацията. За да се извърши алгоритъмът е необходимо да се посочат ден, месец и година. Това показва месеците от три до четиринадесет, започва с март и приключва през февруари. Това гарантира, че скок дни винаги падат в края на годината, което опростява изчисленията: ако месец <3 тогава, месец = месец + 12.

Стъпка 2

Изчислете века и година. 50-те години на миналия век трябва да са 19, въпреки че тази цифра признава 20-и век: век = база (година / 100) = yearSiglo = year mod 100.

Стъпка 3

Намерете деня от седмицата, когато векът започна: седмица = база (век / 4) + 5 * век. Зелър определи, че това изчисление, от модул седем, ще даде деня от седмицата, в който е започнал всеки век. Основното изчисление отчита факта, че на всеки четири века няма скок.

Стъпка 4

Изчислете деня от седмицата, в която започва годината: daySweden = weekday + yearSiglover + base (yearSiglo / 4). С изключение на високите години, всяка година трябва да започнете следващия ден от седмицата, започнала през предходната година. Изчислението на модул седем показва деня от седмицата от първия ден на годината.

Стъпка 5

Намерете деня от седмицата, когато започва месецът: weekday = weekDay + base ((месец + 1) * 26) / 10). Това е сърцето на алгоритъма на Зелер, който отбеляза, че това изчисление е в състояние да определи кой ден от седмицата ще започне месец. С тази формула се премахва необходимостта от таблици за търсене, за да се определи дължината на всеки месец.

Стъпка 6

Добавете деня от месеца и изчислете деня от седмицата, на която пада датата: weekday = weekDay + daySunday = weekday mod 7.

Стъпка 7

Преобразувайте датата към стандартите на Международната организация по стандартизация: датата на седмицата; денят от седмицата започва с понеделник = 1. С алгоритъма Zeller се използва събота = 0. За преобразуването се използва проста модулна аритметика: weekday = ((weekday + 5) mod 7) + 1.