1. Ngalih saka Datekelas menyang Calendarkelas
Programer seneng Datekelas kasebut amarga kesederhanaan lan dhukungan kanggo standar Unix, nanging kaya sing dingerteni, saben mawar duwe eri.
Programer pengin Datekelas "pinter". Lan dheweke entuk apa sing dikarepake ing bentuk kelas Calendar. Iki disusun minangka cara kanggo ora mung nyimpen tanggal, nanging uga kanggo nindakake operasi sing angel karo tanggal.
Jeneng lengkap saka Calendarkelas punika java.util.Calendar. Aja lali ditambahake menyang statement ngimpor yen sampeyan arep nggunakake ing kode.
Sampeyan bisa nggawe Calendarobyek kanthi printah iki:
Calendar date = Calendar.getInstance();
Cara statis getInstance()saka Calendarkelas nggawe Calendarobyek sing diinisialisasi karo tanggal saiki. Tanggalan sing dikarepake bakal digawe adhedhasar setelan komputer sing mbukak program kasebut.
Utawa luwih tepat, tanggalan sing sampeyan entuk ... Iku amarga manungsa ing Bumi ora diwatesi ing siji tanggalan. Nanging, padha nggunakake akeh. Lan meh saben wong digandhengake karo sawetara agama utawa negara. Kelas kasebut Calendarndhukung 3:
| Tanggalan | Katrangan |
|---|---|
| Kalender Gregorian | Kalender Gregorian Kristen |
| Kalender Budha | kalender Budha |
| Kalender Kaisar Jepang | Kalender kekaisaran Jepang |
Nanging ana uga kalender Cina lan Arab. Sejatine, nggarap wektu ora gampang kaya sing dikira.
Ing kalender Tionghoa, taun resmi yaiku 4716 nalika pawulangan iki ditulis. Lan miturut kalender Muslim, taun 1398. Sugeng rawuh ing jagad gedhe, kanca programerku.
2. Nggawe obyek tanggalan
Kita bakal nggunakake kalender Gregorian, amarga iku paling umum ing donya. Paling ora nganti China tuku Oracle lan nggawe kalender Cina dadi sing utama.
Sampeyan bisa nggawe obyek tanggalan kanthi tanggal apa wae nggunakake statement kaya iki:
Calendar date = new GregorianCalendar(year, month, day);
Ya, sampeyan kudu nulis GregorianCalendarsaben wektu. Tinimbang Calendar, sampeyan uga bisa nulis GregorianCalendar— sing uga bakal bisa. Nanging nulis mung Calendarluwih cendhak.
Taun kudu ditulis kanthi lengkap, contone, sampeyan ora bisa nulis 19 tinimbang 2019. Sasi isih ana nomer saka nol. Nanging kaya sadurunge, dina sasi ora diitung saka nol. Kutu buku!
Kanggo nyetel wektu lan tanggal, sampeyan kudu ngliwati wektu minangka argumen tambahan:
... = new GregorianCalendar(year, month, day, hours, minutes, seconds);
Sampeyan bisa malah liwat milliseconds yen perlu. Iku parameter sawise sawetara detik.
3. Nampilake obyek tanggalan ing layar
Yen sampeyan mung nyithak obyek tanggalan ing layar, sampeyan ora bakal seneng banget karo asil kasebut.
| Kode |
|---|
|
| Output konsol |
|
Bab sing kudu dielingake ing kene yaiku tanggalan iku tanggalan, dudu tanggal : duwe kabeh jinis setelan sing kabeh bakal ditampilake ing layar.
Luwih becik nggunakake SimpleDateFormatobyek kanggo nampilake tanggalan, nanging nganti sinau, sampeyan bisa nggunakake hack urip iki.
Date date = calendar.getTime();
A Calendarobyek bisa gampang diowahi kanggo Dateobyek, lan sampeyan wis ngerti carane kanggo nampilake Dateobyek. Sampeyan bisa nggunakake kode kaya iki kanggo ngowahi Calendarobyek menyang Date:
Nggunakake getTime()metode:
| Kode | Output konsol |
|---|---|
|
|
Iku prakara sing beda, ta?
4. Nggarap unsur tanggal
Kanggo entuk unsur tartamtu saka tanggal (eg taun, sasi, ...), kelas Calendarduwe get()metode. Iku cara siji, nanging nduweni paramèter:
int month = calendar.get(Calendar.MONTH);
Where calendarpunika Calendarvariabel, lan MONTHlapangan pancet kelas Calendar.
Sampeyan ngliwati salah sawijining Calendarlapangan konstan kelas minangka argumen kanggo getmetode kasebut, lan sampeyan entuk nilai sing dikarepake minangka asil.
Tuladha
| Kode | Katrangan |
|---|---|
|
jaman (sadurunge utawa sawise jaman umum) taun sasi dina sasi dina minggu jam menit detik |
Kanggo ngganti unsur tanggal, gunakake setcara:
calendar.set(Calendar.MONTH, value);
Where calendarpunika Calendarvariabel, lan MONTHlapangan pancet kelas Calendar.
Nalika nggarap setmetode, sampeyan ngliwati salah sawijining Calendarkolom konstan kelas minangka argumen pisanan, lan nilai anyar minangka argumen kapindho.
Tuladha
| Kode | Katrangan |
|---|---|
|
taun = 2019 wulan = Juli (nomer saka 0) dina kaping 4 jam menit detik |
5. Konstanta Calendarkelas
Kolom konstan kelas Calendarora diwatesi kanggo menehi jeneng unsur tanggal. Koyone ana lapangan kanggo saben kesempatan.
Calendar date = new GregorianCalendar(2019, Calendar.JANUARY, 31);
Contone, ana kolom konstan kanggo ngrujuk marang sasi:
Lan uga dina minggu:
Calendar calendar = new GregorianCalendar(2019, Calendar.JANUARY, 31);
if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY)
{
System.out.println("It's Friday");
}
Kita ora bakal dhaptar kabeh. Kita mung ora pengin sampeyan kaget yen sampeyan ndeleng konstanta kaya iki ing kode kasebut.
Nggunakake konstanta ndadekake kode luwih bisa diwaca, mula programer nggunakake. Lan sasi sing nomer saka nul uga kanggo nambah readability. Utawa ora.
6. Ngganti tanggal ing Calendarobyek
Kelas kasebut Calendarduwe metode sing ngidini sampeyan ngoperasikake tanggal kanthi cara sing luwih cerdas. Contone, sampeyan bisa nambah taun, sasi, utawa sawetara dina kanggo tanggal. Utawa njupuk adoh. Cara iki diarani add(). Nggawe karo katon kaya iki:
calendar.add(Calendar.MONTH, value);
Where calendarpunika Calendarvariabel, lan MONTHlapangan pancet kelas Calendar.
Nalika nggarap addmetode, sampeyan ngliwati salah sawijining Calendarkolom konstan kelas minangka argumen pisanan, lan minangka argumen kapindho - nilai anyar sing bakal ditambahake.
Iki minangka cara cerdas liyane. Ayo ndeleng carane pinter iku:
| Kode |
|---|
|
| Output konsol |
|
Cara iki mangertos mung ana 28 dina ing Februari 2019, dadi tanggal asil 1 Maret.
Saiki ayo njupuk 2 sasi! Apa sing kudu kita entuk? 27 Desember 2018! Ayo dipriksa saiki.
Kanggo nindakake operasi sing nyebabake tanggal sadurunge, sampeyan kudu menehi nilai negatif menyang add()metode kasebut:
| Kode |
|---|
|
| Output konsol |
|
Kerjane!
Cara iki nyathet dawane sasi lan taun kabisat sing beda-beda. Kabeh ing kabeh, cara sing apik. Iku persis apa sing paling programer sing nggarap tanggal perlu.
7. Rolling unsur tanggal
Nanging kadhangkala ana kahanan nalika kita ora pengin prilaku pinter iki, contone, sampeyan pengin nindakake soko kanggo salah siji bagéan saka tanggal tanpa ngganti kabeh liyane.
Kelas kasebut Calendarduwe metode khusus roll()kanggo iki. Tandhane mung kaya add()cara, nanging cara iki mung ngganti siji unsur tanggal, supaya liyane ora diganti.
Tuladha:
| Kode |
|---|
|
| Output konsol |
|
Kita ngganti sasi, nanging taun lan tanggal tetep ora owah.
GO TO FULL VERSION