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.