Таҳрири худкори датаҳо дар JavaScript

JavaScript хусусияти хеле қизиқу фоидабахш дорад: агар ҳангоми сохтани объекти 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); // кадом таърих хоҳад буд?