כיצד לחשב את יום השבוע של כל שנה

שלב 1

הכן את המידע. כדי לבצע את האלגוריתם יש לציין יום, חודש ושנה. זה מפרט את החודשים 3-14, מתחיל במרץ ומסתיים בחודש פברואר. זה מבטיח כי ימים מעוברת תמיד נופלים בסוף השנה, אשר מפשט את החישובים: אם החודש <3 אז, חודש = חודש + 12.

שלב 2

לחשב את המאה ואת השנה. שנות החמישים חייבות להיות 19, למרות העובדה כי נתון זה מזהה את המאה העשרים: המאה = בסיס (שנה / 100) = yearSiglo = שנה mod 100.

שלב 3

מצא את היום בשבוע שבו החלה המאה: יום בשבוע = בסיס (המאה / 4) + 5 * המאה. זלר קבע כי חישוב זה, של מודול שבע, ייתן את היום בשבוע שבו כל המאה החלה. חישוב הבסיס מחשיב את העובדה כי כל ארבע מאות שנים אין יום מעוברת.

שלב 4

חישוב יום בשבוע שבו החלה השנה: daySweden = weekDay + yearSiglover + בסיס (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.