עבור לתוכן

חישוב הפרש חודשים בין שני תאריכים באופן מדויק - יש פתרון - אבל אני סתם מסתבך?

Featured Replies

פורסם

אהלן

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



This method uses the number days in its calculations and rounds down to the nearest number of whole months. For example, given a start date of 10/30/00 and an end date of 11/30/00, one month is returned; however, an end date of 11/29/00 returns a zero.


For this method, use the following formula
=IF(DAY(LDate)>=DAY(EDate),0,-1)+(YEAR(LDate)-YEAR(EDate))
*12+MONTH(LDate)-MONTH(EDate)

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

אני לא מאמין שניתן לעשות זאת ולקבל תוצאה מדויקת - דגש על מדויקת ולא בערך.

מה דעתכם?

פורסם

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

פורסם

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

פורסם

לא שמתי לב לפרטים קודם. טעות שלי...

פורסם
  • מחבר

כן יש צורך רק בהפרש חודשים. אז איך מחשבים את זה?

פורסם

עזוב כרגע את הקוד. מה הבעיה העקרונית שלך? יש 12 חודשים בשנה אז זה לא אמור להיות כל כך מסובך.

  • 4 חודשים מאוחר יותר...
פורסם

אני לא איזה מומחה גדול,אבל למה אתה לא יכול לקחת את שנה1 ולהכפיל ב12,לקחת את חודש1 ולהוסיף לתוצאה שיצאה לך מהשנה1 כפול 12 (נותן לך כמה חודשים סהכ' עברו מאז שנת 0 וחודש 0 ועד לתאריך הנבדק) ולעשות אותו הדבר לשנה2 וחודש 2 ולחסר בינהם?

לדגומא:

אני רוצה לבדוק מה ההפרש חודשים בין 5.2010 לבין ה3.2005,

נגיד נפתח 2 משתנים X1 ו X2

בראשון יהיה

X1=2010*12+5 \\נותן לך את מספר החודשים שעברו עד 2010 ובנוסף נוסיף לזה 5 שאלה החודשים שעברו מאז 2010

ולשני ניתן

X2=2005*12+3 \\נותן לך את מספר החודשים שעברו עד 2005 ובנוסף נוסיף 3 כי אלה החודשים שעברו מאז 2005

(כמובן שלא ניתן מספרים רגילים אלה הכל יהיה משתנים שמקבלים מהמקלדת)

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים