Kuupäevade automaatne korrigeerimine JavaScriptis
JavaScriptil on väga huvitav ja kasulik
omadus: kui Date objekti loomisel
määrati vale ajahetk -
arvutatakse see automaatselt õigeks.
Vaatame seda näitega.
Nagu teate, kuupäeva 35 jaanuarit ei eksisteeri.
Maksimaalne võimalik jaanuari päev on 31.
See tähendab, et meie kuupäeval 35 jaanuar
on 4 liigset päeva. JavaScript sellisel
juhul lihtsalt lisab need liigsed 4
päeva järgmisele kuule:
let date = new Date(2018, 0, 35);
console.log(date); // saame 4. veebruar
Võib määrata mitte ainult liigseid päevi, vaid
ka kuid. Seda tuleb meeles pidada, et kuud
algavad nullist, mis tähendab, et viimane korrektne
kuu on 11-s. Kui määrata 12-s
kuu, saame järgmise aasta jaanuari:
let date = new Date(2018, 12, 1); // määrame 12. kuu
console.log(date); // saame 1. jaanuar 2019
Kirjeldatud korrigeerimine töötab ka väiksema
poole. Nagu teate, kõige väiksem
päev kuus on päev numbriga 1.
Seega, kui määrata päev numbriga 0,
saame eelmise kuu viimase päeva:
let date = new Date(2018, 1, 0); // määrame nullpäeva
console.log(date); // saame 31. jaanuar
Samuti saab määrata negatiivseid päevade
ja kuude väärtusi. Seda tuleb meeles pidada, et
minimaalne päev on number 1, ja
minimaalne kuu - number 0. See tähendab,
et miinus esimene päev langeb 2
päevale eelmise kuu lõpust, ja miinus
esimene kuu langeb lihtsalt eelmise
aasta viimasele kuule:
let date = new Date(2018, 1, -1); // määrame -1 päeva
console.log(date); // saame 30. jaanuar
let date = new Date(2018, -1, 1); // määrame -1 kuu
console.log(date); // saame 1. detsember 2017
Kõik ülaltoodu kehtib samuti tundide, minutite ja sekundite kohta:
let date = new Date(2018, 0, 1, 24, 0, 0); // määrame 24. tunni
console.log(date); // saame 2. jaanuar, 0 tundi
let date = new Date(2018, 0, 1, 25, 0, 0); // määrame 25. tunni
console.log(date); // saame 2. jaanuar, 1 tund
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 1, 35);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 15, 1);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 3, 31);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 1, 31);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 12, 33);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 33, 33);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 5, 0);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 0, 0);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, -12, -33);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // milline kuupäev saab?
Määrake, milliseks kuupäevaks JavaScript teisendab järgmise ajahetke:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // milline kuupäev saab?