Bagaimana menentukan hari dalam seminggu dengan melewati tanggal tertentu di Jawa?

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat bagaimana mengekstrak hari dalam seminggu sebagai angka dan sebagai teks dari tanggal Java.

2. Masalah

Logika bisnis seringkali membutuhkan hari dalam seminggu. Mengapa? Pertama, jam kerja dan tingkat layanan berbeda antara hari kerja dan akhir pekan. Oleh karena itu, mendapatkan hari sebagai angka diperlukan untuk banyak sistem. Tapi kita juga mungkin membutuhkan hari itu sebagai teks untuk dipajang.

Lantas, bagaimana cara kita mengekstrak hari dalam seminggu dari kurma di Jawa?

3. Solusi Dengan java.util.Date

java.util.Date telah menjadi kelas tanggal Java sejak Java 1.0. Kode yang dimulai dengan Java versi 7 atau lebih rendah mungkin menggunakan kelas ini.

3.1. Hari dalam Seminggu sebagai Angka

Pertama, kami mengekstrak hari sebagai angka menggunakan java.util.Calendar :

public static int getDayNumberOld(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(Calendar.DAY_OF_WEEK); }

Angka yang dihasilkan berkisar dari 1 (Minggu) hingga 7 (Sabtu) . Kalender menentukan konstanta untuk ini: Calendar.SUNDAY - Calendar.SATURDAY .

3.2. Hari dalam Seminggu sebagai Teks

Sekarang kami mengekstrak hari sebagai teks . Kami mengirimkan Lokal untuk menentukan bahasa:

public static String getDayStringOld(Date date, Locale locale) { DateFormat formatter = new SimpleDateFormat("EEEE", locale); return formatter.format(date); }

Ini mengembalikan satu hari penuh dalam bahasa Anda , seperti "Senin" dalam bahasa Inggris atau "Montag" dalam bahasa Jerman.

4. Solusi Dengan java.time.LocalDate

Java 8 merombak penanganan tanggal dan waktu dan memperkenalkan java.time.LocalDate untuk tanggal. Oleh karena itu, proyek Java yang hanya berjalan di Java versi 8 atau lebih tinggi harus menggunakan kelas ini!

4.1. Hari dalam Seminggu sebagai Angka

Mengekstrak hari sebagai angka itu sepele sekarang:

public static int getDayNumberNew(LocalDate date) { DayOfWeek day = date.getDayOfWeek(); return day.getValue(); }

Angka yang dihasilkan masih berkisar antara 1 hingga 7. Tapi kali ini, Senin 1 dan Minggu 7 ! The hari dalam seminggu memiliki sendiri enum - DAYOFWEEK . Seperti yang diharapkan, nilai enum adalah SENIN - MINGGU .

4.2. Hari dalam Seminggu sebagai Teks

Sekarang kita mengekstrak hari itu sebagai teks lagi. Kami juga melewati Lokal :

public static String getDayStringNew(LocalDate date, Locale locale) { DayOfWeek day = date.getDayOfWeek(); return day.getDisplayName(TextStyle.FULL, locale); }

Sama seperti java.util.Date , ini mengembalikan satu hari penuh dalam bahasa yang dipilih.

5. Kesimpulan

Pada artikel ini, kami mengekstrak hari dalam seminggu dari tanggal Jawa. Kami melihat bagaimana mengembalikan angka dan teks menggunakan java.util.Date dan java.time.LocalDate .

Seperti biasa, kode tersedia di GitHub.