Skip to content

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

js
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

js
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:

js
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)

js
const sana = Temporal.PlainDate.from("2026-01-31");
const natija = sana.add({ months: 1 }); // 2026-02-28 (Fevral oxiri)

Misol (Kabisa yili)

js
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:

js
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-25

Sanalarni 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.
js
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.