פיתון לוח שנה המודול הוא חלק מהספריה הסטנדרטית. זה מאפשר פלט של לוח שנה לפי חודש או שנה ומספק גם פונקציות אחרות הקשורות ללוח השנה.
ה לוח שנה המודול עצמו תלוי במודול השעה. אבל אנו גם נצטרך תאריך שעה למטרותינו מאוחר יותר, לכן עדיף לייבא את שני אלה. כמו כן, בכדי לבצע פיצול מחרוזות, נצטרך את ה- מחדש מודול. בואו לייבא את כולם בהליכה אחת.
כברירת מחדל, לוחות השנה מתחילים את השבוע עם יום שני (יום 0), לפי הכנס האירופי, ומסתיים ביום ראשון (יום 6). אם אתה מעדיף את יום ראשון כבר היום הראשון בשבוע, השתמש ב- יום ראשון הקרוב () שיטה לשנות את ברירת המחדל ליום 6 באופן הבא:
כדי לעבור בין השניים, אתה יכול לעבור את היום הראשון בשבוע כוויכוח באמצעות sys מודול. לאחר מכן תבדוק את הערך עם אם הצהרה וקבע את יום ראשון הקרוב () שיטה בהתאם.
בלוח השנה שלנו, יהיה נחמד לקבל כותרת עבור לוח השנה שקורא משהו כמו "לוח שנה שנוצר על ידי פיתון ל ..." ויש לו את החודש והשנה הנוכחיים. כדי לעשות זאת, עלינו להוציא את החודש והשנה מהמערכת. פונקציונליות זו היא משהו ש לוח שנה מספק, פייתון יכול לאחזר את החודש והשנה. אבל עדיין יש לנו בעיה. מכיוון שכל תאריכי המערכת הם מספריים ואינם מכילים צורות לא מוסכמות או לא-נומריות של החודשים, אנו זקוקים לרשימה של אותם חודשים. הכנס לרשימה
שנה.כעת כשנקבל את המספר של חודש, נוכל לגשת למספר הזה (מינוס אחד) ברשימה ולקבל את שם החודש המלא.
באופן מוזר, תאריך שעה למודול יש תאריך שעה מעמד. בכיתה זו אנו מכנים שני אובייקטים: עכשיו () ו תאריך (). השיטה datetime.datetime.now () מחזירה אובייקט המכיל את המידע הבא: שנה, חודש, תאריך, שעה, דקה, שנייה ומיקרו-שניות. כמובן, אין לנו צורך במידע בזמן. כדי לשלוף את פרטי התאריך בלבד אנו מעבירים את התוצאות של עכשיו () ל datetime.datetime.date () כוויכוח. התוצאה היא היום כעת מכיל את השנה, החודש והתאריך המופרדים על ידי מקפים.
כדי לחלק את הנתונים האלה לחלקים הניתנים לניהול יותר, עלינו לפצל אותם. לאחר מכן נוכל להקצות את החלקים למשתנים הנוכחי_יר, החודש הנוכחי, ו היום בהתאמה.
כדי להבין את השורה הראשונה של קוד זה, עבדו מימין לשמאל ומבפנים כלפי חוץ. ראשית, אנו מחברים את האובייקט היום כדי לפעול עליו כמחרוזת. לאחר מכן, חילקנו אותו באמצעות מקף ה- em כמגביל, או אסימון. לבסוף, אנו מקצים את שלושת הערכים הללו כרשימה ל'זרם '.
על מנת להתמודד עם הערכים הללו בצורה ברורה יותר ולקרוא את השם הארוך של החודש הנוכחי מתוך שנה, אנו מקצים את מספר החודש ל הנוכחי_לא. לאחר מכן נוכל לעשות קצת חיסור בתסריט של שנה ולהקצות את שם החודש החודש הנוכחי.
בשורה הבאה צריך קצת תחליף. התאריך שמוחזר מ תאריך שעה הוא ערך דו ספרתי אפילו בתשעת הימים הראשונים של החודש. אפס מתפקד כמחזיק מקום, אך אנו מעדיפים שללוח השנה שלנו יש רק את הספרה היחידה. אז אנחנו לא מחליפים שום ערך לכל אפס שמתחיל מחרוזת (מכאן '\ A'). לבסוף, אנו מקצים את השנה ל הנוכחי_יר, להמיר אותו למספר שלם לאורך הדרך.
שיטות בהן נתקשר בהמשך ידרשו קלט בפורמט שלם שלם. לכן חשוב לוודא שכל נתוני התאריך נשמרים בצורה שלמה ולא במחרוזת.
לפני שאנחנו מדפיסים את לוח השנה, עלינו להדפיס את לוח השנהHTML פריסת הקדמות ו- CSS עבור לוח השנה שלנו. עבור לדף זה לקבלת הקוד להדפסת הקדמת CSS ו- HTML ללוח השנה. והעתק את הקוד לקובץ התוכנית שלך. CSS בקובץ HTML של קובץ זה עוקב אחר התבנית המוצעת על ידי ג'ניפר קירנין, המדריך אודות אודות עיצוב אתרים. אם אינך מבין חלק זה של הקוד, ייתכן שתתייעץ עם העזרה שלה ללימוד CSS ו- HTML. לבסוף, כדי להתאים אישית את שם החודש, אנו זקוקים לשורה הבאה:
כעת, לאחר הפלט של הפריסה הבסיסית, נוכל להגדיר את לוח השנה עצמו. לוח שנה, בנקודה הבסיסית ביותר שלו, הוא טבלה. אז בואו נעשה טבלה ב- HTML שלנו:
עכשיו עלינו ליצור את לוח השנה בפועל. כדי לקבל את נתוני לוח השנה בפועל, אנו זקוקים ל לוח שנה של המודולים לוח השנה החודשי () שיטה. שיטה זו נוגעת בשני טיעונים: השנה והחודש של לוח השנה הרצוי (שניהם בצורה שלמה). הוא מחזיר רשימה הכוללת רשימות של תאריכי החודש לשבוע. כך שאם אנו סופרים את מספר הפריטים בערך המוחזר, יש לנו את מספר השבועות בחודש הנתון.
בידיעת מספר השבועות בחודש, אנו יכולים ליצור ל לולאה אשר סופרת דרך א טווח() מ- 0 למספר השבועות. כמו כן, הוא ידפיס את שאר לוח השנה.
לאחר תחילת טווח זה, מועדי השבוע נשלפים מ- חודש בהתאם לערך הדלפק והמוקצה אליו שבוע. לאחר מכן, נוצרת שורה טבלאית להחזקת תאריכי לוח השנה.
א ל לולאה עוברת בימי השבוע כך שניתן יהיה לנתח אותם. ה לוח שנה מודול מדפיס '0' לכל תאריך בטבלה שאין לו ערך תקף. ערך ריק יעבוד טוב יותר למטרותינו ולכן אנו מדפיסים את תוספות הספרים של נתונים טבליים ללא ערך עבור אותם תאריכים.
בשלב הבא, אם היום הוא הנוכחי, עלינו להדגיש אותו איכשהו. מבוסס על ה td מעמד היום, CSS של דף זה יגרום להצגת התאריך הנוכחי על רקע כהה במקום על רקע בהיר של שאר התאריכים.
לבסוף, אם התאריך הוא ערך תקף ואינו התאריך הנוכחי, הוא מודפס כנתונים טבליים. שילובי הצבעים המדויקים לאלה מוחזקים במבוא הקדמה של סגנון CSS.
פשוט ניתן להשתמש בלוח השנה הפשוט הזה בכל דרך שזקוקה לייצוג לוח שנה. על ידי קישור קישור בין התאריכים ב- HTML, ניתן ליצור בקלות פונקציונליות של יומן. לחלופין, ניתן לבדוק מול קובץ יומן ואז לשקף אילו תאריכים נלקחים לפי צבעם. לחלופין, אם מישהו ממיר את התוכנית לתסריט CGI, ניתן להפיק אותה תוך כדי תנועה.