Как компютър изчислява делничния ден за всяка дата
Всяка дата, откакто Григорианският календар влезе в сила, има точно един правилен ден от седмицата и може да се изчисли само с аритметика – не е необходимо приложение за календар или справочна таблица. Основната идея е същата, формализирана от конгруентността на Zeller и метода на Sakamoto: пребройте общия брой дни от известна референтна точка, след това вземете този брой по модул 7, за да кацнете в делничен ден.
Съвременният софтуер не изпълнява буквално класическата формула на Zeller - той обикновено проследява броя на дните, използвайки вътрешно пролептичен григориански календар - но резултатът е математически идентичен с това, което изчисляват тези алгоритми за писалка и хартия. Точно тази последователност е причината този калкулатор, хартиен алманах и умствен математически трик да са съгласни с един и същ отговор за една и съща дата.
Еднодневната (или двудневната) смяна, година след година
Редовната година продължава 365 дни — точно 52 седмици плюс един допълнителен ден. Този остатъчен ден е причината една фиксирана дата, да речем 4 юли, да се премества напред точно с един делничен ден всяка година: вторник една година, сряда следващата и т.н.
Високосните години нарушават този стабилен модел. Тъй като 29 февруари се вмъква в средата на годината, всяка дата от 1 март нататък скача напред с два работни дни вместо с един в сравнение с предходната година. Датите през януари и февруари не са засегнати, докато високосният ден действително не е преминал.
Има още една бръчка на знака за век: годините, които се делят на 100, не са високосни, освен ако не се делят и на 400. Годината 2000 беше високосна според това правило; 1900 не беше и 2100 също няма да бъде — детайл, който има значение, ако изчислявате делничните дни далеч в миналото или бъдещето.
Проверка на делничните дни за исторически дати
Тъй като денят от седмицата е фиксирано свойство на самата дата, същото изчисление работи за проверка на исторически записи - потвърждаване на документирано събитие, което действително се е случило в деня от седмицата, според източника, или определяне на кой ден от седмицата е роден далечен прародител.
Едно предупреждение за дати преди 1582 г.: календарът, използван преди Григорианската реформа (юлианският календар), се движеше по малко по-различни правила за високосна година, така че изчисленията на делничните дни за дати преди това преминаване зависят от това кой календар е използвал самият исторически запис.
Отвъд една дата: събития и брой дни от седмицата
След като можете да изчислите ден от седмицата за една дата, от същата математика излизат още три полезни въпроса:
- Next/previous occurrence — the closest date before or after a given day that falls on a specific weekday, useful for finding "the next Friday" from any starting point.
- Преброяване на дните от седмицата — колко пъти даден ден от седмицата (да речем понеделник) се среща в рамките на диапазон от дати, което е същата математика зад преброяването на периоди на заплащане или повтарящи се дати на срещи.
- Намерете всички събития — пълен списък на всяка дата, на която попада конкретен ден от седмицата в рамките на диапазон, удобен за планиране на всичко, което се повтаря всяка седмица.
Ако вместо това имате нужда от точния брой дни между две дати или текущо обратно броене до целева дата, Брояч на дни се справя директно с това. За добавяне или изваждане на години, месеци или седмици от дата вижте Калкулатор за дата.