Leap year problem
લીપ યર પ્રોબ્લેમ (લીપ યર બગ અથવા લીપ ડે બગ તરીકે પણ ઓળખાય છે) એ ડિજિટલ (કમ્પ્યુટર-સંબંધિત) અને બિન-ડિજિટલ દસ્તાવેજીકરણ અને ડેટા સંગ્રહ પરિસ્થિતિઓ બંને માટે એક સમસ્યા છે, જે લીપ વર્ષ કયા વર્ષ છે તેની ગણતરીમાં ભૂલો અથવા લીપ વર્ષ અને સામાન્ય વર્ષ વચ્ચેના તફાવતને ધ્યાનમાં લીધા વિના તારીખોમાં હેરફેર કરવાથી પરિણમે છે. લીપ વર્ષની ભૂલો સામાન્ય રીતે બે શ્રેણીઓમાં આવે છે, જે વાસ્તવિક દુનિયાના ઉપયોગમાં તેમની અસરની માત્રાના આધારે હોય છેઃ તે જે ભૂલની સ્થિતિ તરફ દોરી જાય છે, જેમ કે અપવાદો, ભૂલ વળતર કોડ, બિન-પ્રારંભિક ચલ અથવા અનંત લૂપ જે ખોટી માહિતી તરફ દોરી જાય છે, જેમ કે શ્રેણી પ્રશ્નો અથવા એકત્રીકરણમાં એક પછી એક સમસ્યાઓ ઉદાહરણો પાયથોન નીચેનો પાયથોન કોડ એ શ્રેણી 1 લીપ વર્ષના બગનું ઉદાહરણ છે. આજે 29 ફેબ્રુઆરી થાય ત્યાં સુધી તે યોગ્ય રીતે કામ કરશે. પછી, તે સામાન્ય વર્ષની 29 ફેબ્રુઆરી બનાવવાનો પ્રયાસ કરશે, જે અસ્તિત્વમાં નથી. તારીખ કન્સ્ટ્રક્ટર "દિવસ મહિના માટે શ્રેણીની બહાર છે" સંદેશ સાથે વેલ્યુ એરર ઉઠાવશે. તારીખની આયાત તારીખથી આજે = date.today () પછી = today.replace (વર્ષ = today.year + 1) વિન્ડોઝ C + + નીચેના વિન્ડોઝ C + + કોડ એ શ્રેણી 1 લીપ યર બગનું ઉદાહરણ છે. વર્તમાન તારીખ લીપ વર્ષની 29 ફેબ્રુઆરી ન બને ત્યાં સુધી તે યોગ્ય રીતે કામ કરશે. પછી, તે સામાન્ય વર્ષના 29 ફેબ્રુઆરીનું પ્રતિનિધિત્વ કરવા માટે એસ. ટી. માં ફેરફાર કરશે, જે તારીખ ખરેખર અસ્તિત્વમાં નથી. કોઈપણ કાર્ય કે જે SYSTEMTIME માળખાને પરિમાણ તરીકે સ્વીકારે છે તેને પાસ કરવું સંભવતઃ નિષ્ફળ જશે. ઉદાહરણ તરીકે, અહીં બતાવેલ સિસ્ટમ ટાઈમ ટુ ફાઇલ ટાઈમ કોલ ભૂલ કોડ પરત કરશે. કારણ કે તે વળતર મૂલ્ય અનચેક કરેલું છે (જે અત્યંત સામાન્ય છે), આના પરિણામે એફ. ટી. ને શરૂઆત વગર છોડી દેવામાં આવશે. સિસ્ટમ સ્ટ; ફાઇલટાઇમ ફૂટ; ગેટસિસ્ટમ ટાઈમ (& સ્ટ); st.wYear + +; સિસ્ટમટાઇમ ટુ ફાઇલટાઇમ (& સ્ટ, & ફુટ); માઈક્રોસોફ્ટ સી #નીચેનો. નેટ સી #કોડ એ શ્રેણી 1 લીપ યર બગનું ઉદાહરણ છે. તે 29 ફેબ્રુઆરી સુધી યોગ્ય રીતે કામ કરશે. પછી, તે સામાન્ય વર્ષની 29 ફેબ્રુઆરી બનાવવાનો પ્રયાસ કરશે, જે અસ્તિત્વમાં નથી. ડેટટાઇમ કન્સ્ટ્રક્ટર ArgumentOutOfRangeExસેપશન ફેંકશે. ડેટટાઇમ dt = DateTime.Now; ડેટટાઇમ પરિણામ = નવો ડેટટાઇમ (dt.Year + 1, dt.Month, dt.Day); જાવાસ્ક્રિપ્ટ નીચેનો જાવાસ્ક્રિપ્ટ કોડ એ શ્રેણી 2 લીપ યર બગનું ઉદાહરણ છે. તે 29 ફેબ્રુઆરી સુધી યોગ્ય રીતે કામ કરશે, જેમ કે 2020-02-29 પર. પછી તે વર્ષ 2021 નક્કી કરવાનો પ્રયાસ કરશે. 2021-02-29 અસ્તિત્વમાં ન હોવાથી, તારીખ ઓબ્જેક્ટ આગામી માન્ય તારીખ તરફ આગળ વધશે, જે છે 2021-03-01. વાર dt = નવી તારીખ (); 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 સમસ્યા સંદર્ભો ટાઇમ ફોર્મેટિંગ અને સ્ટોરેજ બગ્સ કૅલેન્ડર્સ સોફ્ટવેર બગ્સ ટેક્નોલોજી જોખમો પણ જુઓ.