वर्ष 2000 समस्या मीडिया का ध्यान की बड़ी राशि यह मिली जानकारी के अनुसार इन दिनों ज्यादातर लोगों द्वारा समझा जाता है।
C प्रोग्रामिंग भाषा में लिखे गए अधिकांश प्रोग्राम Y2K समस्या के प्रति अपेक्षाकृत प्रतिरक्षित हैं, लेकिन इसके बजाय वर्ष 2038 की समस्या से ग्रस्त हैं । यह समस्या इसलिए उत्पन्न होती है क्योंकि अधिकांश सी प्रोग्राम मानक समय पुस्तकालय नामक दिनचर्या के पुस्तकालय का उपयोग करते हैं । यह पुस्तकालय समय मूल्यों के भंडारण के लिए एक मानक 4-बाइट प्रारूप स्थापित करता है, और समय मूल्यों को परिवर्तित करने, प्रदर्शित करने और गणना करने के लिए कई कार्य भी प्रदान करता है।
मानक 4 बाइट प्रारूप मानता है कि की शुरुआत समय 1 जनवरी, 1970 है, 12:00:00 पर हूँ यह मान 0. सेकंड की संख्या निम्नलिखित के रूप में है कि शून्य मान किसी भी समय / दिनांक मान व्यक्त किया जाता है। तो ९१९६४२७१८ का मान १ जनवरी १९७० को सुबह १२:००:०० बजे से पहले ९१९,६४२,७१८ सेकंड है, जो रविवार, २१ फरवरी, १९९९, १६:१८:३८ प्रशांत समय (यूएस) पर है। यह एक सुविधाजनक प्रारूप है क्योंकि यदि आप किन्हीं दो मानों को घटाते हैं, तो आपको जो मिलता है वह कई सेकंड होता है जो उनके बीच के समय का अंतर होता है। फिर आप पुस्तकालय में अन्य कार्यों का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि दो समय के बीच कितने मिनट/घंटे/दिन/महीने/वर्ष बीत चुके हैं।
यदि आपने हाउ बिट्स एंड बाइट्स वर्क पढ़ा है , तो आप जानते हैं कि एक हस्ताक्षरित 4-बाइट पूर्णांक का अधिकतम मूल्य 2,147,483,647 है, और यहीं से वर्ष 2038 की समस्या आती है। ऋणात्मक (और अमान्य) मान पर लुढ़कने से पहले समय का अधिकतम मूल्य 2,147,483,647 है, जो 19 जनवरी, 2038 में अनुवादित होता है। इस तिथि पर, मानक समय पुस्तकालय का उपयोग करने वाले किसी भी सी प्रोग्राम को दिनांक गणना में समस्या होने लगेगी।
सौभाग्य से, मेनफ्रेम पर Y2K समस्या की तुलना में इस समस्या को ठीक करना कुछ आसान है। अच्छी तरह से लिखे गए प्रोग्राम को लाइब्रेरी के एक नए संस्करण के साथ फिर से कंपाइल किया जा सकता है, उदाहरण के लिए, स्टोरेज फॉर्मेट के लिए 8-बाइट मान। यह संभव है क्योंकि पुस्तकालय पूरे समय की गतिविधि को अपने समय के प्रकारों और कार्यों के साथ समाहित करता है (अधिकांश मेनफ्रेम कार्यक्रमों के विपरीत, जो उनके दिनांक स्वरूपों या गणनाओं को मानकीकृत नहीं करते थे)। इसलिए वर्ष 2038 की समस्या को ठीक करना उतना कठिन नहीं होना चाहिए जितना कि Y2K समस्या थी।
यहां कुछ दिलचस्प लिंक दिए गए हैं:
- वर्ष 2000 की समस्या कैसे काम करती है
- सी प्रोग्रामिंग कैसे काम करता है
- बिट्स और बाइट्स कैसे काम करते हैं
- ऑपरेटिंग सिस्टम कैसे काम करते हैं
एक सतर्क पाठक यह बताने के लिए पर्याप्त था कि आईबीएम पीसी हार्डवेयर वर्ष २११६ की समस्या से ग्रस्त है। एक पीसी के लिए , समय की शुरुआत 1 जनवरी, 1980 से शुरू होती है, और यूनिक्स समय के समान एक अहस्ताक्षरित 32-बिट पूर्णांक में सेकंड से वृद्धि होती है। 2116 तक, पूर्णांक ओवरफ्लो हो जाता है।
Windows NT समय को ट्रैक करने के लिए 64-बिट पूर्णांक का उपयोग करता है। हालाँकि, यह अपने वेतन वृद्धि के रूप में १०० नैनोसेकंड का उपयोग करता है और समय की शुरुआत १ जनवरी १६०१ है, इसलिए NT वर्ष २१८४ समस्या से ग्रस्त है।
पर इस पेज , एप्पल कहा गया है कि मैक साल 29,940 ठीक बाहर है!