בעיית שנת 1900

בעיית שנת 1900 (באנגלית: Year 1900 problem) נוגעת לפרשנות שגויה של שנים שנרשמות בשתי הספרות האחרונות בלבד, והאם הן התרחשו לפני שנת 1900 או אחריה. בניגוד לבאג 2000, היא אינה קשורה לתוכנות מחשב בלבד, מכיוון שהבעיה הייתה קיימת לפני שהמחשבים האלקטרוניים התקיימו, וגם צצה במערכות ידניות.

הנושא הנפוץ ביותר שהועלה על ידי שנת 1900 נוגע לגיליהם של אנשים. לעיתים קרובות, שנת הלידה של האדם נרשמה בשתי ספרות בלבד, מתוך הנחה שלא חשוב בדיוק בן כמה אדם, או שאיש אינו חי יותר ממאה שנים. במספר מדינות, במיוחד באירופה, הוצג מספר זיהוי לאומי (לעיתים קרובות בשנות ה-50), כולל מידע דו ספרתי על שנת הלידה.

תופעת הלוואי הלא רצויה הגדולה ביותר מכך היא שלפעמים חושבים שאנשים בני 100 ומעלה הם ילדים צעירים או במקרים מסוימים, שחושבים שילדים צעירים הם מבוגרים.

בעת הטיפול בבאג 2000 ננקטו לפעמים אמצעים להימנע או לתקן זאת: שינוי מספר הזיהוי הלאומי, למשל. לדוגמה, השנה נרשמת רק עם שתי ספרות במספר אזרחי ייחודי בולגרי; עם זאת, פתרון לבעיה זאת היה מוכן כבר עם הקמת המערכת בשנת 1975: נוסף 20 למספר החודש עבור אדם שנולד לפני 1900 ו-40 עבור ילידי שנת 2000 או אחריו.

מיקרוסופט אקסל 

מיקרוסופט אקסל (המשתמש במערכת התאריכים המוגדרת כברירת מחדל של 1900) אינו יכול להציג תאריכים לפני שנת 1900, אם כי הדבר אינו נובע מכך שמספר שלם דו ספרתי משמש לייצוג השנה: אקסל משתמש במספר נקודה צפה כדי לאחסן תאריכים ושעות. המספר 1.0 מייצג את 1 בינואר 1900 במערכת התאריכים 1900 או את 1 בינואר 1904 במערכת התאריכים 1904 והיה ברירת המחדל עבור מקינטוש לפני אקסל 2016. מספרים קטנים יותר מכך מוצגים כשגיאת #VALUE!.

לצורך תאימות עם לוטוס 1-2-3, מערכת התאריכים של 1900 מקבלת באופן שגוי את התאריך 29 בפברואר 1900, אולם 1900 לא הייתה שנה מעוברת.

באג 4000 
בעוד שרוב התוכנות, כולל אקסל ו-R, מזהות את 4000 ו-8000 כשנות מעוברות (מכיוון שהן ניתנות לחלוקה ב-400), SAS אינה (אין בתוכנה "כלל 4000 שנה"). כך שהמרות תאריכים בין SAS לתוכנות אחרות יוצאות מהסנכרון לאחר 28 בפברואר 4000, מבלי להתחשב בפער זה.

ראו גם 
 זמן מערכת

הערות שוליים 

1900
באגים
באגים הקשורים לשעה ותאריך