תבנית:הזזת חודשים בשנה פשוטה

מתוך ויקיפדיה, האנציקלופדיה החופשית

תבנית שמקבלת מספר חודש והפרש חודשים, ומחזירה את מספר החודש שיתקבל אחרי הוספת ההפרש לחודש הנתון, בהנחה שהחישוב מתבצע בשנה פשוטה (לא מעוברת).

למשל, אם התבנית תקבל 10 (כלומר תמוז) והפרש של 4, היא תחזיר 2 (כלומר חשון).

לכאורה החישוב מסתכם בחיבור שני הפרמטרים והוצאת מודולו 12, אבל התבנית מבצעת עוד בדיקה קטנה לפני כן: מכיוון שיש פונקציות שונות שמייצגות את חודשי אדר א ואדר ב על ידי המספרים 13 ו-14, הפונקציה בודקת קודם כל אם מספר החודש גדול מ-12, ואם כן, מתייחסת אליו כאילו היה 6 (כלומר אדר של שנה פשוטה). הבדיקה הזו היוותה את התמריץ לכתיבת התבנית הזו.

בפרט, אם הקלטים לתבנית הם 13 (אדר א) והזזה של 0 חודשים, התבנית תחזיר 6 (אדר). זה לא באג אלא ההתנהגות הרצויה של התבנית (ומכאן שמה).

פרמטר 1: מספר חודש הבסיס העברי, בטווח 1-14, כאשר 13 ו-14 מייצגים את אדר א ואדר ב.

פרמטר 2: ההפרש, בחודשים, אותו יש להוסיף לחודש הבסיס. מספר שלם (חיובי, שלילי או אפס).

תוצאת החישוב: סכום הפרמטרים מודולו 12 (תוצאת 0 במודולו תחזיר 12), למעט במקרים בהם חודש הבסיס הוא 13 או 14, אז הוא יוחלף ב-6 לפני חישוב הסכום.