JavaScript Temporal: Sanalar Arifmetikasi (Arithmetic)
Temporal API JavaScript-da sana va vaqt bilan hisob-kitoblarni (qo'shish, ayirish, solishtirish) oson va ishonchli bajarish uchun mo'ljallangan.
Temporal yordamida vaqt zonalaridagi muammolar (DST) yoki obyektning o'zgarib ketishi (mutation) kabi xavotirlarsiz arifmetik amallarni bajarishingiz mumkin.
Kunlarni qo'shish
Sanalarga kun qo'shish uchun add() metodidan foydalaniladi. Bu metod original obyektni o'zgartirmaydi, balki yangi natijani qaytaradi.
Misol
const sana = Temporal.PlainDate.from('2026-05-17');
// 7 kun qo'shish
const yangiSana = sana.add({ days: 7 });Kunlarni ayirish
Vaqtni ayirish uchun esa subtract() metodidan foydalaniladi.
Misol
const sana = Temporal.PlainDate.from('2026-05-17');
// 7 kun ayirish
const oldingiSana = sana.subtract({ days: 7 });Bir vaqtda bir nechta birlikni qo'shish
Siz bitta amal ichida yillar, oylar va kunlarni qo'shishingiz mumkin:
const bugun = Temporal.Now.plainDateISO();
// 1 yil, 2 oy va 15 kun qo'shish
const kelajak = bugun.add({ years: 1, months: 2, days: 15 });Qo'llab-quvvatlanadigan birliklar
Temporal arifmetikasida quyidagi barcha birliklardan foydalanish mumkin:
- years (yillar)
- months (oylar)
- weeks (haftalar)
- days (kunlar)
- hours (soatlar)
- minutes (minutlar)
- seconds (sekundlar)
- milliseconds, microseconds, nanoseconds
Oylar va Yillar bilan ishlash
Temporal oylarning turli uzunliklarini va kabisa yillarini avtomatik tarzda to'g'ri hisoblaydi:
Misol (Oylar)
const sana = Temporal.PlainDate.from("2026-01-31");
const natija = sana.add({ months: 1 }); // 2026-02-28 (Fevral oxiri)Misol (Kabisa yili)
const sana = Temporal.PlainDate.from("2024-02-29");
const natija = sana.add({ years: 1 }); // 2025-02-28 (To'g'ri moslashadi)with() metodi: Ma'lumotlarni almashtirish
Agar sizga sanani o'zgartirish emas, balki uning biror qismini (masalan, faqat oyini) boshqa qiymatga almashtirish kerak bo'lsa, with() metodidan foydalaning:
const sana = Temporal.PlainDate.from("2026-05-17");
// Oy va kunni o'zgartirib yangi sana olish
const yangiSana = sana.with({ month: 12, day: 25 }); // 2026-12-25Sanalarni solishtirish (Compare)
Temporal sanalarini solishtirishda doim compare() yoki equals() metodlarini ishlatish shart (chunki ular obyekt, raqam emas):
- compare(): Tartiblash (sort) uchun juda qulay.
-1(oldin),0(teng),1(keyin) qaytaradi. - equals(): Ikki sana aynan bir xilligini tekshiradi.
const sanalar = [
Temporal.PlainDate.from("2026-05-17"),
Temporal.PlainDate.from("2022-01-01"),
Temporal.PlainDate.from("2024-12-25")
];
// Sanalarni o'sish tartibida saralash
sanalar.sort(Temporal.PlainDate.compare);Xulosa
Temporal API-da arifmetika — bu xavfsizlik va aniqlik demakdir. Barcha amallar o'zgarmas bo'lib, oylarning o'zgarishi, qishki/yozgi vaqt yoki kabisa yili kabi murakkabliklar avtomatik tarzda hal qilinadi.
