जावास्क्रिप्ट में दिनांकों का स्वचालित सुधार

जावास्क्रिप्ट की एक बहुत ही दिलचस्प और उपयोगी विशेषता है: यदि Date ऑब्जेक्ट बनाते समय एक अमान्य समय बिंदु निर्दिष्ट किया गया था - तो उसे स्वचालित रूप से एक वैध बिंदु में परिवर्तित कर दिया जाएगा। आइए एक उदाहरण से देखते हैं।

जैसा कि आप जानते हैं, 35 जनवरी का कोई अस्तित्व नहीं है। जनवरी का अधिकतम संभव दिन - 31 होता है। इसका मतलब है कि हमारी 35 जनवरी की तारीख में 4 अतिरिक्त दिन हैं। ऐसे मामले में JavaScript बस इन अतिरिक्त 4 दिनों को अगले महीने में जोड़ देगा:

javascriptlet date = new Date(2018, 0, 35);
console.log(date); // 4 फरवरी प्राप्त होगा

न केवल अतिरिक्त दिन, बल्कि महीने भी निर्दिष्ट किए जा सकते हैं। इसके साथ ही यह याद रखना चाहिए कि महीने शून्य से शुरू होते हैं, और इसलिए अंतिम वैध महीना - 11-वां होता है। यदि 12-वां महीना निर्दिष्ट किया जाए, तो अगले वर्ष की जनवरी प्राप्त होगी:

javascriptlet date = new Date(2018, 12, 1); // 12-वां महीना निर्दिष्ट कर रहे हैं
console.log(date); // 1 जनवरी 2019 प्राप्त होगा

वर्णित सुधार छोटी ओर भी काम करता है। जैसा कि आप जानते हैं, महीने का सबसे न्यूनतम दिन 1 नंबर वाला दिन होता है। इसलिए, यदि 0 नंबर वाला दिन निर्दिष्ट किया जाए, तो पिछले महीने का अंतिम दिन प्राप्त होगा:

javascriptlet date = new Date(2018, 1, 0); // शून्यवां दिन निर्दिष्ट कर रहे हैं
console.log(date); // 31 जनवरी प्राप्त होगा

दिनों और महीनों के लिए ऋणात्मक मान भी निर्दिष्ट किए जा सकते हैं। इसके साथ ही यह याद रखना चाहिए कि न्यूनतम दिन का नंबर 1 होता है, और न्यूनतम महीने का नंबर 0 होता है। इसका मतलब है, कि माइनस पहला दिन पिछले महीने के अंत से 2 दिन में पड़ता है, और माइनस पहला महीना बस पिछले वर्ष के अंतिम महीने में पड़ता है:

javascriptlet date = new Date(2018, 1, -1); // -1 दिन निर्दिष्ट कर रहे हैं
console.log(date); // 30 जनवरी प्राप्त होगा
javascriptlet date = new Date(2018, -1, 1); // -1 महीना निर्दिष्ट कर रहे हैं
console.log(date); // 1 दिसंबर 2017 प्राप्त होगा

ऊपर कही गई सभी बातें घंटों, मिनटों और सेकंडों के साथ समान रूप से काम करती हैं:

javascriptlet date = new Date(2018, 0, 1, 24, 0, 0); // 24-वां घंटा निर्दिष्ट कर रहे हैं
console.log(date); // 2 जनवरी, 0 घंटे प्राप्त होंगे
javascriptlet date = new Date(2018, 0, 1, 25, 0, 0); // 25-वां घंटा निर्दिष्ट कर रहे हैं
console.log(date); // 2 जनवरी, 1 घंटा प्राप्त होगा
Задание 1

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 1, 35);
console.log(date); // कौन सी तारीख होगी?
Задание 2

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 15, 1);
console.log(date); // कौन सी तारीख होगी?
Задание 3

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 3, 31);
console.log(date); // कौन सी तारीख होगी?
Задание 4

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 1, 31);
console.log(date); // कौन सी तारीख होगी?
Задание 5

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 12, 33);
console.log(date); // कौन सी तारीख होगी?
Задание 6

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 33, 33);
console.log(date); // कौन सी तारीख होगी?
Задание 7

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 5, 0);
console.log(date); // कौन सी तारीख होगी?
Задание 8

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 0, 0);
console.log(date); // कौन सी तारीख होगी?
Задание 9

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, -12, -33);
console.log(date); // कौन सी तारीख होगी?
Задание 10

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // कौन सी तारीख होगी?
Задание 11

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // कौन सी तारीख होगी?
Задание 12

निर्धारित करें, कि JavaScript निम्नलिखित समय बिंदु को किस तारीख में बदल देगा:

javascriptlet date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // कौन सी तारीख होगी?