مشکل سال ۲۰۳۸

مشکل سال ۲۰۳۸ اشاره به اتفاقی در سال ۲۰۳۸ میلادی دارد که ممکن است برخی از نرم‌افزارها در آن سال از کار بیفتند. این مشکل بر روی همه سیستم‌ها و نرم‌افزارهایی که هم ساعت سیستمی را به صورت یک عدد صحیح ۳۲ بیتی ذخیره می‌کنند؛ و هم این عدد را به صورت «ثانیه‌های سپری‌شده از تاریخ پنجشنبه، اول ژانویه ۱۹۷۰ ساعت ۰۰:۰۰:۰۰» تفسیر می‌کنند، اثر خواهد گذاشت. دورترین مدت زمانی که می‌توان در قالب ۳۲ بیت ذخیره کرد، ساعت ۰۳:۱۴:۰۷ در روز سه شنبه، ۱۹ ژانویه ۲۰۳۸ میلادی است (۲۱۴۷۴۸۳۶۴۷ ثانیه سپری‌شده از اول ژانویه ۱۹۷۰) و پس از رسیدن به این لحظه، متغیر ۳۲ بیتی‌ای که زمان در آن ذخیره شده، سرریز خواهد شد. با رسیدن به این لحظه، ساعت دور خواهد زد و به یک عدد منفی تبدیل خواهد شد که باعث می‌شود این سیستم‌ها این عدد را در عوض ۱۹ ژانویه ۲۰۳۸، به صورت ۱۳ دسامبر ۱۹۰۱ تفسیر کنند. در این لحظه، تمامی بیت‌های قابل استفاده در متغیری که زمان را نگه می‌دارد، استفاده می‌شوند و در عوض به بیت علامت (سمت چپ‌ترین بیت که نشان‌دهنده مثبت یا منفی بودن عدد است) یک واحد اضافه می‌شود و باعث می‌شود عدد به «کوچکترین عدد منفی قابل ذخیره در ۳۲ بیت» تبدیل شود.

بعضی از برنامه‌ها ممکن است زودتر از سال ۲۰۳۸ از کار بیفتند؛ خصوصاً برنامه‌هایی که با زمان‌های آینده سروکار دارند. برای مثال، برنامه‌ای که در سال ۲۰۴۰ با چیزی سروکار دارد، در سال ۲۰۱۹ از کار افتاده‌است و می‌بایست برنامه‌نویسی‌های آن اصلاح گردد تا دوباره شروع به کار کند.

جستارهای وابسته 
مشکل سال ۱۰۰۰۰

منابع 

 

۲۰۳۸ (میلادی)
اشکال‌های برنامه‌نویسی
فناوری‌های سیستم‌عامل
لینوکس
یونیکس