Leap year problem
লিপ ইয়ার সমস্যা (লিপ ইয়ার বাগ বা লিপ ডে বাগ নামেও পরিচিত) ডিজিটাল (কম্পিউটার-সম্পর্কিত) এবং অ-ডিজিটাল ডকুমেন্টেশন এবং ডেটা স্টোরেজ পরিস্থিতি উভয়ের জন্যই একটি সমস্যা যা লিপ ইয়ারের গণনায় ত্রুটি বা লিপ ইয়ার এবং সাধারণ বছরের মধ্যে পার্থক্য বিবেচনা না করে তারিখগুলি হেরফের করার ফলে ঘটে। শ্রেণীবিন্যাস লিপ ইয়ার বাগগুলি সাধারণত দুটি বিভাগে পড়ে, যা বাস্তব-বিশ্বের ব্যবহারে তাদের প্রভাবের পরিমাণের উপর ভিত্তি করেঃ সেগুলি যা ত্রুটির অবস্থার দিকে পরিচালিত করে, যেমন ব্যতিক্রম, ত্রুটি রিটার্ন কোড, অনির্বচনীয় ভেরিয়েবল বা অন্তহীন লুপ সেগুলি যা ভুল তথ্যের দিকে পরিচালিত করে, যেমন পরিসীমা প্রশ্ন বা সমষ্টিতে অফ-বাই-ওয়ান সমস্যা উদাহরণ পাইথন নিম্নলিখিত পাইথন কোডটি একটি বিভাগ 1 লিপ ইয়ার বাগের একটি উদাহরণ। আজ 29শে ফেব্রুয়ারি না হওয়া পর্যন্ত এটি সঠিকভাবে কাজ করবে। তারপর, এটি একটি সাধারণ বছরের 29শে ফেব্রুয়ারি তৈরি করার চেষ্টা করবে, যা বিদ্যমান নেই। তারিখ নির্ধারক "মাসের জন্য দিন সীমার বাইরে" বার্তা সহ একটি ভ্যালু এরর উত্থাপন করবে। তারিখের আমদানি তারিখ থেকে আজ = date.today () পরে = today.replace (বছর = today.year + 1) উইন্ডোজ সি + + নিম্নলিখিত উইন্ডোজ সি + + কোডটি 1ম শ্রেণীর লিপ ইয়ার বাগের একটি উদাহরণ। বর্তমান তারিখটি অধিবর্ষের 29শে ফেব্রুয়ারি না হওয়া পর্যন্ত এটি সঠিকভাবে কাজ করবে। তারপর, এটি একটি সাধারণ বছরের 29শে ফেব্রুয়ারির প্রতিনিধিত্ব করার জন্য একটি তারিখ পরিবর্তন করবে, যা আসলে বিদ্যমান নেই। যে কোনও ফাংশনে স্ট পাস করা যা একটি সিস্টেম কাঠামোকে প্যারামিটার হিসাবে গ্রহণ করে সম্ভবত ব্যর্থ হবে। উদাহরণস্বরূপ, এখানে দেখানো সিস্টেমটাইম টু ফাইলটাইম কল একটি ত্রুটি কোড ফিরিয়ে দেবে। যেহেতু সেই রিটার্নের মানটি অনির্ধারিত (যা অত্যন্ত সাধারণ), এর ফলে এফটি-কে প্রাথমিকভাবে বাদ দেওয়া হবে। সিস্টেম স্ট; ফাইলটাইম ফুট; গেটসিস্টেমটাইম (& স্ট); st.wYear + +; সিস্টেমটাইম টু ফাইলটাইম (& স্ট, & ফুট); মাইক্রোসফ্ট সি #নিম্নলিখিত. নেট সি #কোডটি একটি বিভাগ 1 লিপ ইয়ার বাগের একটি উদাহরণ। 29শে ফেব্রুয়ারি না হওয়া পর্যন্ত এটি সঠিকভাবে কাজ করবে। তারপর, এটি একটি সাধারণ বছরের 29শে ফেব্রুয়ারি তৈরি করার চেষ্টা করবে, যা বিদ্যমান নেই। ডেটটাইম কনস্ট্রাক্টর একটি ArgumentOutOfRangeExসেপশন নিক্ষেপ করবে। ডেটটাইম ডিটি = DateTime.Now; ডেটটাইম ফলাফল = নতুন ডেটটাইম (dt.Year + 1, dt.Month, dt.Day); জাভাস্ক্রিপ্ট নিম্নলিখিত জাভাস্ক্রিপ্ট কোডটি একটি বিভাগ 2 লিপ ইয়ার বাগের একটি উদাহরণ। এটি 29শে ফেব্রুয়ারি পর্যন্ত সঠিকভাবে কাজ করবে, যেমন 2020-02-29-এ। তারপর এটি 2021 সাল নির্ধারণ করার চেষ্টা করবে। যেহেতু 2021-02-29 বিদ্যমান নেই, তারিখ অবজেক্টটি পরবর্তী বৈধ তারিখে এগিয়ে যাবে, যা হল 2021-03-01. ভার ডিটি = নতুন তারিখ (); dt.setFullYear (dt.getFullYear () + 1); খারাপ লিপ ইয়ার অ্যালগরিদম (অনেক ভাষা) নিম্নলিখিত কোডটি একটি লিপ ইয়ার বাগের উদাহরণ যা অনেক ভাষায় দেখা যায়। ফলাফলটি কিসের জন্য ব্যবহার করা হয় তার উপর নির্ভর করে এটি বিভাগ 1 বা বিভাগ 2-এর প্রভাব ফেলতে পারে। এটি ভুলভাবে ধরে নেয় যে একটি অধিবর্ষ ঠিক প্রতি চার বছর অন্তর ঘটে। বূল হল লিপ ইয়ার = বছর% 4 = = 0; লিপ ইয়ার অ্যালগরিদমে সঠিক লিপ ইয়ার অ্যালগরিদম ব্যাখ্যা করা হয়েছে। মাইক্রোসফ্ট এক্সেল তার প্রথম দিকের সংস্করণগুলি থেকে 1900 সালকে একটি অধিবর্ষ হিসাবে ভুলভাবে বিবেচনা করেছে এবং তাই 29শে ফেব্রুয়ারি সেই বছরের 28শে ফেব্রুয়ারি থেকে 1লা মার্চের মধ্যে আসে। বাগটি লোটাস 1-2-3 থেকে উদ্ভূত হয়েছিল এবং ব্যাকওয়ার্ড সামঞ্জস্যের উদ্দেশ্যে ইচ্ছাকৃতভাবে এক্সেলে প্রয়োগ করা হয়েছিল। 1900 সালকে অধিবর্ষ হিসাবে বিবেচনা করার কারণ ব্যাখ্যা করে মাইক্রোসফ্ট এই বাগ সম্পর্কে একটি নিবন্ধ লিখেছে। এই বাগটি ই. সি. এম. এ অফিস ওপেন এক্স. এম. এল (ও. ও. এক্স. এম. এল) নির্দিষ্টকরণে একটি প্রয়োজনীয়তায় উন্নীত করা হয়েছে। 1996 সালে, 31শে ডিসেম্বর, নিউজিল্যান্ডের তিওয়াই পয়েন্ট এবং অস্ট্রেলিয়ার তাসমানিয়ার বেল বে-তে দুটি অ্যালুমিনিয়াম গলানোর কারখানায়, গলানোর পটলাইন নিয়ন্ত্রণকারী 660টি কম্পিউটারের প্রত্যেকটি মধ্যরাতে বন্ধ হয়ে যায় কারণ কম্পিউটারগুলি বছরের 366তম দিন পরিচালনা করার জন্য প্রোগ্রাম করা হয়নি। মেরামতের খরচ এর চেয়ে বেশি বলে অনুমান করা হয়েছিল। 2000 সালে, 31শে ডিসেম্বর, নরওয়েতে জাতীয় রেলপথ সংস্থা ভি আবিষ্কার করে যে তাদের 29টি নতুন সিগনাটার ট্রেনই চলতে ব্যর্থ হয়েছে কারণ তাদের অনবোর্ড কম্পিউটারগুলি তারিখটিকে বছরের 366তম দিন হিসাবে স্বীকৃতি দেয়নি। অন্তর্বর্তীকালীন ব্যবস্থা হিসাবে, প্রকৌশলীরা তাদের ঘড়িগুলি এক মাসের মধ্যে পুনরায় সেট করে ট্রেনগুলি পুনরায় চালু করেন। 31শে ডিসেম্বর, 2008-এর মধ্যরাতে, অনেক প্রথম প্রজন্মের জুন 30 মডেল হিমশীতল হয়ে যায়। মাইক্রোসফ্ট জানিয়েছে যে ফ্রিস্কেল দ্বারা লিখিত অভ্যন্তরীণ ঘড়ি চালক এবং ডিভাইসটি যেভাবে একটি অধিবর্ষ পরিচালনা করে তার কারণে সমস্যাটি ঘটেছিল। এটি 24 ঘন্টা পরে স্বয়ংক্রিয়ভাবে নিজেকে ঠিক করে নেয়, কিন্তু যারা অপেক্ষা করতে চায়নি তাদের জন্য একটি মধ্যবর্তী "ফিক্স" ছিল ডিভাইসের ব্যাটারি নিষ্কাশন করা এবং তারপর 1 জানুয়ারী, 2009-এ দুপুর ইউটিসি-র পরে রিচার্জ করা। সোনির প্লেস্টেশন 3 ভুলভাবে 2010 কে একটি অধিবর্ষ হিসাবে বিবেচনা করেছিল, তাই অস্তিত্বহীন ফেব্রুয়ারী 29,2010, মার্চ 1,2010-এ দেখানো হয়েছিল এবং একটি প্রোগ্রাম ত্রুটি সৃষ্টি করেছিল। 2012 সালে, টমটম স্যাটেলাইট নেভিগেশন ডিভাইসগুলি একটি লিপ ইয়ার বাগের কারণে ত্রুটিযুক্ত হয়েছিল যা 31শে মার্চ প্রথম আবির্ভূত হয়েছিল। 2012 সালে, জিমেইলের চ্যাট ইতিহাস 29শে ফেব্রুয়ারি সংরক্ষিত সমস্ত চ্যাটের জন্য 31শে ডিসেম্বর, 1969 তারিখ দেখায়। 2012 সালে, মাইক্রোসফ্ট অ্যাজুরে 28 ফেব্রুয়ারি লিপ ইয়ার বাগ দ্বারা অফলাইনে নেওয়া হয়েছিল। পি. এস. টি বিকেল 5টা 45 মিনিটে উইন্ডোজ অ্যাজুরে দল একটি সমস্যা সম্পর্কে সচেতন হয়ে ওঠে, স্পষ্টতই একটি সময় গণনার কারণে যা লিপ বছরের জন্য ভুল ছিল। 2016 সালে, কোড অফ ম্যাট ওয়েবসাইটে 2016 লিপ ডে বাগের তালিকায় বিপুল সংখ্যক লিপ ইয়ার বাগ তালিকাভুক্ত করা হয়েছিল। 2016 সালে, 29শে ফেব্রুয়ারি ডাসেল্ডার্ফ বিমানবন্দরে লাগেজ পরিবাহক ব্যবস্থায় একটি লিপ ইয়ার বাগের কারণে 1,200 টিরও বেশি লাগেজ তাদের ফ্লাইট মিস করে। 2020 সালে কোড অফ ম্যাট ওয়েবসাইটে 2020 লিপ ডে বাগের তালিকায় বিপুল সংখ্যক লিপ ইয়ার বাগ তালিকাভুক্ত করা হয়েছিল। আরও দেখুন সময় বিন্যাস এবং সঞ্চয় বাগ বছর 2100 সমস্যা রেফারেন্স সময় বিন্যাস এবং সঞ্চয় বাগ ক্যালেন্ডার সফ্টওয়্যার বাগ প্রযুক্তিগত বিপদ