October 28, 2024

פייתון 16 - עבודה עם זמן ותאריכים


פרק קודם:

פייתון 15 - רגקסים

מה נלמד

  • מדידת זמן, אזורים ועוד…
  • על המודול datetime
  • על המודול time
  • איך לחשב תאריכים
  • איך להציג זמנים
  • איך להתייחס לפערי זמנים בין מקומות שונים בעולם
  • על סוגי תזמונים - טיימרים

זמן ואזורי זמן⏳

חישוב זמן היה אתגר במהלך ההיסטוריה, בעיקר בין תיאום הזמן האסטרונומי שניתן לחשב ע”פ השמש והכוכבים לבין הצרכים החברתיים, טכנולוגיים וכלכליים.
בעבר השתמשו רבות בשעוני מים ושעוני שמש שניסו לקבוע את אורך היום, אך השיטה הייתה שונה בין אזורים שונים בעולם.
אך קודם עלינו לשאול את עצמנו - מהו יום?
ההגדרות האלו נגזרות לפי הזמנים האסטרונומיים של מערכת השמש שלנו.
יום - סיבוב כדור הארץ סביב עצמו.
חודש - השלמה של הסיבוב ע”פ הירח.
שנה - סיבוב של כדור הארץ סביב השמש.
לאחר מכן הבינו שספירה כזו איננה מדויקת.
לאחר ההתפתחות התעשייתית, הצורך בקורדינציה מדויקת יותר עלה - למשל לסנכרן תנועת רכבות בין ערים.
ככה הגענו להתפתחות זמן גריניץ.
זמן גריניץ הוא זמן הנמדד באנגליה ובקצרה הוא נקרא GMT.
הזמן בבסיס הוא GMT+0 ולמשל ישראל הופכת להיות GMT+2 ובקיץ GMT+3.

רואים שזמן זה דבר מסובך? חכו זה לא הסוף!

שעון נשמע כמו משהו מובן מאליו, אבל שעון הוא כלי מדידת זמן.
וכמו כל כלי מדעי - יש לו סכנה להיות לא מדויק.
כדי ללמוד זמן באופן מדויק להחריד נבנתה שיטה על בסיס זמן אטומי.
וזה גרם ליצירת זמן UTC - Coordinated Universal Time.

מכיוון שזמן סיבוב כדור הארץ איננו קבוע, זה הגיע למצב שהזמן האטומי והזמן האסטרונומי אינם מסונכרנים.
בשביל לפתור את זה, פעם בכמה זמן הוסיפו שנייה - למשל ב2016 הייתה הוספה של שנייה ביום אחד.

ב-2022 החליטו לבטל את ההוספות ולהשאיר את הזמן כסדרו בשביל להפסיק לבלבל מערכות מחשב.
ההחלטה תיכנס לתוקף רק ב-2035.

לזמן יש תכונות רבות ונתאר אותן על מנת שנבין את מימוש הזמן במערכות מחשב בצורה מהימנה וטובה!

הידעת?
המעבר לשעון חורף ושעון קיץ יוצר אתגרים טכניים במערכות מחשב, במיוחד במערכות שאינן מעודכנות להתאים אוטומטית את השעה.
מערכות רבות מסתמכות על הגדרת זמן מדויקת לפעולות קריטיות, כך ששינוי פתאומי יכול לגרום לבעיות בסנכרון, בלבול ברישום זמני פעולות ואף השבתות.
כדי למנוע תקלות, מנהלי מערכות נדרשים לוודא שהעדכונים הנכונים מותקנים מראש ושכל תהליך המתוזמן לפי שעה יותאם מראש לשינויי שעון.

מודע ולא מודע

יחידת זמן יכולה להיות מודעת או בלתי מודעת לאזור הזמן שלה.
למשל השעה 18:30 אינה מודעת לאזור הזמן.
אולם אם אומר שעכשיו שש וחצי בישראל, הוספתי את מימד האזור לתיאור היחידה.

תאריך

שעות ודקות יכולות להופיע בפני עצמן או עם תאריך כלשהו.

דוגמאות:
18:30
18:30 30/10/2024

נקודה או רצף

זמן יכול להתבסס בתור נקודה בודדת לאורך ציר הזמן.
או לחילופין ניתר לתאר רצף שיש לו התחלה וסוף.

דוגמאות:
00:00-23:59
01/10/2024-07/10-2024

אינטרוולים

אינטרוול מתאר רק את ההפרש של זמן מסוים או במילים פשוטות - חיבור או חיסור של יחידות זמן.

דוגמאות:
+5days
+2hours
-10minutes

קלנדרים

תיארנו גם זמן שמחושב בעזרת שעונים אסטרונומיים ושעונים אטומיים - אך איך נדע לא רק באיזה יום אנחנו אלה מהי השנה?
כאן נכנסים לתמונה קלנדרים!
שני הלוחות שנה שאנו מכירים זה כמובן הלועזי והעברי.
עוד לוח שנה מעניין הוא היפני - שנותן מימד נוסף הנקרא Era שהוא בכלל נקבע - ע”פ הקיסר!

מאפיין לוח שנה לועזי לוח שנה עברי לוח שנה יפני
מבוסס על שמש ירח-שמש שמש, בשילוב שלטון קיסרי
מספר חודשים בשנה 12 חודשים 12 חודשים (13 בשנה מעוברת) 12 חודשים
אורך שנה 365 ימים (366 בשנה מעוברת) 354 ימים (355-385 בשנה מעוברת) 365 ימים
חודשי השנה ינואר-דצמבר תשרי-אלול חודשי הלוח הגרגוריאני
שנה מעוברת כל 4 שנים לפי מחזור בן 19 שנים תלוי בלוח הגרגוריאני
תחילת השנה 1 בינואר תשרי (סביב ספטמבר-אוקטובר) 1 בינואר
שיטת מספור שנים מונה מהולדת ישו מונה מבריאת העולם מתעדכן בכל תקופת שלטון קיסרי
השנה הנוכחית 2024 ה’תשפ”ד (5784) רֵיוָוה 6 (בהתאם לשלטון הקיסרי)

epoch

זו הגדרת זמן אוניברסלית המתארת את מספר השניות מאז תאריך מסוים.
התאריך נבחר שרירותית והוא - 01/01/1970.

epoch לדוגמא:
1731263129
1731261000
1720000000

איך לדעתכם נייצג תאריכים לפני 1970 בעזרת epoch?

מודול time

חלק זה בעבודה

מודול datetime

חלק זה בעבודה


בפרק הבא נתחיל נושא מורכב שמהווה את מהות התכנות המודרני, תכנות מונחה עצמים!

פייתון 17 - מחלקות חלק א

על הפוסט

הפוסט נכתב על ידי Ilya, רישיון על ידי CC BY-NC-ND 4.0.

שתפו את הפוסט

Email Facebook Linkedin Print

קנו לי קפה

#Software#Python