Korrigjimi Automatik i Datave në JavaScript

JavaScript ka një veçori shumë interesante dhe të dobishme: nëse gjatë krijimit të objektit Date është specifikuar një moment i pasaktë i kohës - ai automatikisht do të rillogaritet në një të saktë. Le të shohim me një shembull.

Siç e dini, data 35 janar nuk ekziston. Dita maksimale e mundshme e janarit është 31. Kjo do të thotë se data jonë 35 janar ka 4 ditë të tepërta. JavaScript në një rast të tillë thjesht do t'i shtojë këto 4 ditë të tepërta muajit të ardhshëm:

javascriptlet date = new Date(2018, 0, 35);
console.log(date); // do të jetë 4 shkurt

Mund të specifikohen jo vetëm ditë të tepërta, por edhe muaj. Në këtë rast, duhet mbajtur mend se muajt fillojnë nga zero, që do të thotë se muaji i fundit i saktë është 11-të. Nëse specifikohet muaji i 12-të, do të fitohet janari i vitit të ardhshëm:

javascriptlet date = new Date(2018, 12, 1); // specifikojmë muajin e 12-të
console.log(date); // do të jetë 1 janar 2019

Korrigjimi i përshkruar funksionon edhe në drejtim zvogëlues. Siç e dini, dita më minimale e muajit është dita me numër 1. Prandaj, nëse specifikohet dita me numër 0, do të fitohet dita e fundit e muajit të kaluar:

javascriptlet date = new Date(2018, 1, 0); // specifikojmë ditën zero
console.log(date); // do të jetë 31 janar

Mund të specifikohen gjithashtu vlera negative të ditëve dhe muajve. Në këtë rast, duhet mbajtur mend se dita minimale ka numër 1, ndërsa muaji minimal - numër 0. Kjo do të thotë se dita minus e parë bie në ditën e 2 të fundit të muajit të kaluar, ndërsa minus muaji i parë thjesht bie në muajin e fundit të vitit të kaluar:

javascriptlet date = new Date(2018, 1, -1); // specifikojmë -1 ditë
console.log(date); // do të jetë 30 janar
javascriptlet date = new Date(2018, -1, 1); // specifikojmë -1 muaj
console.log(date); // do të jetë 1 dhjetor 2017

E gjithë sa më sipër funksionon në mënyrë të ngjashme me orët, minutat dhe sekondat:

javascriptlet date = new Date(2018, 0, 1, 24, 0, 0); // specifikojmë orën e 24-të
console.log(date); // do të jetë 2 janar, 0 orë
javascriptlet date = new Date(2018, 0, 1, 25, 0, 0); // specifikojmë orën e 25-të
console.log(date); // do të jetë 2 janar, 1 orë
Задание 1

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 1, 35);
console.log(date); // cila datë do të jetë?
Задание 2

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 15, 1);
console.log(date); // cila datë do të jetë?
Задание 3

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 3, 31);
console.log(date); // cila datë do të jetë?
Задание 4

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 1, 31);
console.log(date); // cila datë do të jetë?
Задание 5

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 12, 33);
console.log(date); // cila datë do të jetë?
Задание 6

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 33, 33);
console.log(date); // cila datë do të jetë?
Задание 7

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 5, 0);
console.log(date); // cila datë do të jetë?
Задание 8

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 0, 0);
console.log(date); // cila datë do të jetë?
Задание 9

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, -12, -33);
console.log(date); // cila datë do të jetë?
Задание 10

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // cila datë do të jetë?
Задание 11

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // cila datë do të jetë?
Задание 12

Përcaktoni, në cilën datë JavaScript do ta transformojë momentin e mëposhtëm të kohës:

javascriptlet date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // cila datë do të jetë?