סרטון הסבר המבוסס על מאמר זה:
הסרטון והמאמר מבוסס על סרטון של ריק דה גרוט. קישור לסרטון ביוטיוב >> כאן <<
ניתן להוריד את הקובץ המוכן >> מכאן <<
נתחיל בנוסחה הבאה, בשאילתה ריקה:
= DateTime.LocalNow()
נבחין כי הנוסחה לא מתעדכנת בצורה נכונה בסרוויס כיוון שהקובץ שמאוכסן בסרוויס נמצא במדינה אחרת מישראל.
במקרה שלנו, הקובץ מאוכסן בהולנד, שהשעה היא 3 שעות אחורה מישראל, ביחס לשעון הקיץ אצלנו בישראל. והפרש של שעתיים אחורה, בשעון חורף בישראל.
מועדי שעון חורף
עפ"י האתר הזה >> כאן << החוק בישראל קובע מתי מתחיל שעון חורף (מתי עוברים אליו) ומתי הוא מסתיים ועוברים לשעון קיץ.
לפי ההגדרה, שעון החורף בישראל הוא הזמן הרשמי בישראל, והוא חל בימי השנה, למעט ימים של שעון קיץ. כלומר, שעון החורף חל בין התאריכים יום ראשון האחרון בחודש אוקטובר בשעה 02:00 לבין יום שישי שלפני יום ראשון האחרון בחודש מרץ בשעה 02:00.
להלן התאריכים והמועדים לפי שנים בישראל:
שנה | מועד תחילה | מועד סיום |
שעון חורף 2025 | יום ראשון 26.10.2025 ב-02:00 | יום שישי 27.03.2026 ב-02:00 |
שעון חורף 2024 | יום ראשון 27.10.2024 ב-02:00 | יום שישי 28.03.2025 ב-02:00 |
שעון חורף 2023 | יום ראשון 29.10.2023 ב-02:00 | יום שישי 29.03.2024 ב-02:00 |
שעון חורף 2022 | יום ראשון 30.10.2022 ב-02:00 | יום שישי 24.03.2023 ב-02:00 |
שעון חורף 2021 | יום ראשון 31.10.2021 ב-02:00 | יום שישי 25.03.2022 ב-02:00 |
שעון חורף 2020 | יום ראשון 25.10.2020 ב-02:00 | יום שישי 26.03.2021 ב-02:00 |
שעון חורף 2019 | יום ראשון 27.10.2019 ב-02:00 | יום שישי 27.03.2020 ב-02:00 |
הזמן בישראל מבוסס לפי זמן יקום מתואם (Coordinated Universal Time – UTC (INPL)). כלומר, בסיס הזמן המקובל בעולם לעניינים הקשורים לחוק ומשפט, וכן לתיאום בין לאומי, מבוסס על קצב השתנות זמן אטומי, תוך התאמה לתנועת כדור הארץ.
ולכן נשתמש בנוסחה אחרת שמחזירה את הזמן לפי ה UTC
נשנה את השם למשהו יותר הגיוני:
בואו נוסיף שלב ששולף רק את התאריך.
נלחץ על ה FX כדי להוסיף שלב:
נעטוף את השלב הקודם בנוסחה ששולפת רק את התאריך:
= Date.From(UTC_DateTimeZone)
נשנה את השם כיוון שאנחנו נתייחס לשם הזה בשלבים הבאים:
מזכיר כי שעון החורף חל בין התאריכים יום ראשון האחרון בחודש אוקטובר בשעה 02:00 לבין יום שישי שלפני יום ראשון האחרון בחודש מרץ בשעה 02:00.
ניצור צעד נוסף ונעטוף את UTC_Date בנוסחה הבאה כדי להגיע לתאריך תחילת שעון החורף:
= Date.StartOfWeek( #date(Date.Year(UTC_Date),10,30),Day.Sunday)
ניצור צעד נוסף ונעטוף את UTC_Date בנוסחה הבאה כדי להגיע לתאריך סוף שעון החורף:
= Date.AddDays(Date.StartOfWeek(#date(Date.Year(UTC_Date), 3, 31), Day.Sunday), -3)
כעת, כשיש לנו את תאריך התחלת שעון החורף ותאריך סיום שעון החורף, ואנחנו יודעים שבשעון חורף יש להוסיף שעתיים לזמן ה UTC (כלומר, UTC+2) ולשעון הקיץ יש להוסיף 3 שעות לUTC (כלומר, UTC+3), נוכל ליצור שלב עם נוסחת תנאי שבודקת את התאריך של היום ומוסיפה את השעות בצורה דינמית, בהתאם:
= if UTC_Date >= StartWinterDate and UTC_Date <= EndWinterDate then 2 else 3
שלב אחרון:
= DateTimeZone.SwitchZone(UTC_DateTimeZone, offset)
בואו נבדוק כעת אם הזמן מראה נכון גם בדסק טופ וגם בסרוויס: