JavaScript-de seneňleri awtomatik düzetmegi

JavaScript-iň aýratyn gyzykly we peýdaly aýratynlygy bar: eger Date obyekti döredilende nädogry wagt görkezilen bolsa - ol awtomatik usulda dogry hasaplanyp bolar. Geliň, mysal görüň.

Bilşiňiz ýaly, ýanwar aýynyň 35-i ýok. Ýanwar aýynyň iň uly güni - 31. Şeýlelikde, bizim 35 ýanwar seneňiz 4 artykmaç güne eýe. Şeýle ýagdaýda JavaScript diňe şol artykmaç 4 güni indiki aýa goşar:

javascriptlet date = new Date(2018, 0, 35);
console.log(date); // 4 fewral bolup çykar

Diňe artykmaç günleri däl, eýsem aýlary hem görkezip bolýar. Şonda ýatda saklamaly, aýlar noldan başlaýar, şonuň üçin iň soňky dogry aý - 11-inji aý. Eger 12-inji aýy görkezseňiz, onda indiki ýylyň ýanwar aýy çykar:

javascriptlet date = new Date(2018, 12, 1); // 12-nji aýy görkezýäris
console.log(date); // 2019-njy ýylyň 1 ýanwary bolup çykar

Beýan edilen düzetme kiçelmek tarapda hem işleýär. Bilşiňiz ýaly, aýyň iň kiçi güni 1 belgili gündir. Şonuň üçin, 0 belgili güni görkezseňiz, onda öňki aýyň iň soňky güni çykar:

javascriptlet date = new Date(2018, 1, 0); // nol belgili güni görkezýäris
console.log(date); // 31 ýanwar bolup çykar

Günleriň we aýlaryň negatiw bahalaryny hem görkezip bolýar. Şonda ýatda saklamaly, iň kiçi gün 1 belgili, we iň kiçi aý - 0 belgilidir. Bu diýmek, minus birinji gün öňki aýyň 2 iň soňky gününe düşýär, we minus birinji aý öňki ýylyň iň soňky aýyna düşýär:

javascriptlet date = new Date(2018, 1, -1); // -1 güni görkezýäris
console.log(date); // 30 ýanwar bolup çykar
javascriptlet date = new Date(2018, -1, 1); // -1 aýy görkezýäris
console.log(date); // 2017-nji ýylyň 1 dekabry bolup çykar

Ýokarda aýdylanlaryň hemmesi sagatlar, minutlar we sekuntlar bilen hem şoňuň ýaly işleýär:

javascriptlet date = new Date(2018, 0, 1, 24, 0, 0); // 24-nji sagady görkezýäris
console.log(date); // 2-nji ýanwar, 0 sagat bolup çykar
javascriptlet date = new Date(2018, 0, 1, 25, 0, 0); // 25-nji sagady görkezýäris
console.log(date); // 2-nji ýanwar, 1 sagat bolup çykar
Задание 1

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 1, 35);
console.log(date); // haýsy sene bolar?
Задание 2

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 15, 1);
console.log(date); // haýsy sene bolar?
Задание 3

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 3, 31);
console.log(date); // haýsy sene bolar?
Задание 4

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 1, 31);
console.log(date); // haýsy sene bolar?
Задание 5

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 12, 33);
console.log(date); // haýsy sene bolar?
Задание 6

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 33, 33);
console.log(date); // haýsy sene bolar?
Задание 7

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 5, 0);
console.log(date); // haýsy sene bolar?
Задание 8

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 0, 0);
console.log(date); // haýsy sene bolar?
Задание 9

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, -12, -33);
console.log(date); // haýsy sene bolar?
Задание 10

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // haýsy sene bolar?
Задание 11

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // haýsy sene bolar?
Задание 12

JavaScript aşakdaky wagt görkezimini haýsy sene öwrer, anyklaň:

javascriptlet date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // haýsy sene bolar?