1. Date klassidan Calendar klassiga o'tish

Dasturchilar Date klassini oddiyligi va Unix standartlarini qo'llab-quvvatlagani uchun yaxshi ko'rishardi, lekin, ma'lumki, bizning kamchiliklarimiz — bu bizning afzalliklarimizning davomidir.
Dasturchilar "aqlli Date klassini" xohlashdi. Va bunday klass paydo bo'ldi: u Calendar klassi bo'ldi. U nafaqat saqlash, balki sanalar bilan murakkab ishlash vositasi sifatida yaratildi.
Calendar klassining to'liq nomi — java.util.Calendar. Agar siz uni kodda ishlatishga qaror qilsangiz, import qilishni unutmang.
Calendar obyektini yaratish uchun quyidagi buyruqdan foydalaniladi:
Calendar date = Calendar.getInstance();
getInstance() statik metodi Calendar klassining Calendar obyektini yaratadi, u joriy sanaga moslashtiriladi. Dastur ishlayotgan kompyuter sozlamalariga qarab, kerakli taqvim yaratiladi.
To'g'riroq aytish kerak — aktual. Gap shundaki, Yerda bitta emas, ko'plab taqvimlar mavjud. Va deyarli har biri qandaydir din yoki mamlakat bilan bog'liq. Calendar klassi ularning 3 tasini qo'llab-quvvatlaydi:
| Kalendar | Ta'rif |
|---|---|
| GregorianCalendar | Xristian Grigorian kalendari |
| BuddhistCalendar | Buddist kalendari |
| JapaneseImperialCalendar | Yapon Imperatorlik kalendari |
Yana Xitoy va Arab kalendarlari bor. Umuman olganda, vaqt bilan ishlash oson emas.
Xitoyda ushbu lektsiya yozilgan paytda rasman 4716 yil edi. Musulmon kalendariga ko'ra esa — 1398. Katta dunyoga xush kelibsiz, dasturchi do'stim.
2. Kalendar obyektini yaratish
Biz dunyoda eng ko'p tarqalgan Grigorian kalendaridan foydalanamiz. Hech bo'lmasa, Xitoy Oracle kompaniyasini sotib olib, o'z taqvimini asosiy qilmaguncha.
Istalgan sana bilan kalendar obyektini yaratish quyidagi buyruq bilan amalga oshiriladi:
Calendar date = new GregorianCalendar(yil, oy, kun);
Ha, har safar GregorianCalendar yozishga to'g'ri keladi. Siz Calendar o'rniga ham GregorianCalendar yozishingiz mumkin: bu ham ishlaydi. Lekin shunchaki Calendar yozish qisqaroq.
Yilni to'liq yozish kerak: 2019 o'rniga 19 emas. Oylar hali ham nol dan boshlab sanaladi. Oy kunlari esa hali ham noldan boshlab sanaladi (zaiflar!).
Nafaqat sanani, balki vaqtni ham ko'rsatish uchun qo'shimcha parametrlarni uzatish kerak:
... = new GregorianCalendar(yil, oy, kun, soatlar, daqiqa, soniya);
Hatto millisekundlarni ham, agar zarur bo'lsa, ulash mumkin: ularni yo'llaydigan parametr so'nidan keyin ko'rsatiladi.
3. Kalendar obyektini ekranga chiqarish
Agar kalendar obyektini ekranga chiqaradigan bo'lsangiz, natija sizni juda xursand qilmaydi.
| Kod |
|---|
|
| Ekranda chiqarish |
|
Gap shundaki, kalendar bu xuddi kalendar, nafaqat sana: unda ko'plab sozlamalar mavjud va ulardan barchasi ekranga chiqariladi.
Kalendar obyektini to'g'ri ko'rsatish uchun SimpleDateFormat klassidan foydalanish kerak, lekin hozircha uni o'rganmadik, shuning uchun lifehackdan foydalanishingiz mumkin.
Date date = calendar.getTime();
Gap shundaki, Calendar turidagi obyektni osonlik bilan Date turidagi obyektga aylantirish mumkin, va siz Date turidagi obyektni ekranga qanday chiqarishni allaqachon bilasiz. Calendar obyektini Date ga shunday o'zgartirish mumkin:
getTime() metodidan foydalanish:
| Kod | Ekranda chiqarish |
|---|---|
|
|
Endi boshqa narsa, to'g'rimi?
4. Sana qismlariga ishlov berish
Sana qismiga (yil, oy, ...) olish uchun Calendar klassida maxsus metod mavjud — get(). Metod bitta, lekin parametr bilan:
int month = calendar.get(Calendar.MONTH);
Bu yerda calendar — Calendar turidagi o'zgaruvchi, va MONTH — Calendar klassidan olingan konstan
GO TO FULL VERSION