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); // 2019 වසරේ ජනවාරි 1 ලෙස ලැබේ

ඉහත විස්තර කළ නිවර්තනය ක්‍රියා කරන්නේ අඩුවෙන පැත්තට ද වේ. ඔබ දන්නා පරිදි, මාසයේ ඉතාමත් අවම දිනය වන්නේ 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); // 2017 දෙසැම්බර් 1 ලෙස ලැබේ

ඉහත සඳහන් කළ සියල්ල පැය, මිනිත්තු හා තත්පර සඳහා ද එලෙසම ක්‍රියා කරයි:

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); // කුමන දිනය වේද?