Sebagai contoh, saya memiliki tanggal: "23/2/2010" (23 Feb 2010). Saya ingin meneruskannya ke fungsi yang akan mengembalikan hari dalam seminggu . Bagaimana saya bisa melakukan ini?
Dalam contoh ini, fungsi harus mengembalikan String
"Sel".
Selain itu, jika hanya ordinal hari yang diinginkan, bagaimana itu bisa diambil?
Calendar
kelas, sepertiCalendar.SUNDAY
atauCalendar.JANUARY
.Calendar
,Date
danDateTimeFormat
(dan juga waktu Joda) dan menggunakan kelas Java 8java.time
, misalnyaYearMonth
atauLocalDate
. Lihat lebih banyak di jawaban ini .java.util.Date
,java.util.Calendar
, danjava.text.SimpleDateFormat
sekarang warisan , digantikan oleh java.time kelas dibangun ke Jawa 8 & Java 9. Lihat Tutorial oleh Oracle .Gunakan kode ini untuk menemukan nama Hari dari tanggal input. Sederhana dan teruji dengan baik.
sumber
java.util.Date
,java.util.Calendar
, danjava.text.SimpleDateFormat
sekarang warisan , digantikan oleh java.time kelas dibangun ke Jawa 8 & Java 9. Lihat Tutorial oleh Oracle .Cukup gunakan SimpleDateFormat .
Hasilnya adalah: Sabtu, 28 Des 2013
Konstruktor default mengambil Lokal "default" , jadi berhati-hatilah menggunakannya ketika Anda membutuhkan pola tertentu.
sumber
tl; dr
Menggunakan java.time ...
Lihat kode ini berjalan langsung di IdeOne.com (tetapi hanya
Locale.US
berfungsi di sana).waktu java
Lihat contoh kode saya di atas, dan lihat Jawaban yang benar untuk java.time oleh Przemek .
Nomor urut
Untuk bilangan urut, pertimbangkan untuk melewatkan
DayOfWeek
objek enum sepertiDayOfWeek.TUESDAY
. Perlu diingat bahwa aDayOfWeek
adalah objek yang cerdas, bukan hanya string atau angka integer belaka. Menggunakan objek enum tersebut membuat kode Anda lebih banyak mendokumentasikan diri sendiri, memastikan nilai yang valid, dan memberikan keamanan jenis .Tetapi jika Anda bersikeras, mintalah
DayOfWeek
nomor . Anda mendapatkan 1-7 untuk Senin-Minggu per standar ISO 8601 .Joda-Time
UPDATE: Proyek Joda-Time sekarang dalam mode pemeliharaan. Tim menyarankan migrasi ke kelas java.time. Kerangka java.time dibangun ke Java 8 (serta porting kembali ke Java 6 & 7 dan selanjutnya diadaptasi ke Android ).
Berikut adalah contoh kode menggunakan perpustakaan Joda-Time versi 2.4, sebagaimana disebutkan dalam jawaban yang diterima oleh Bozho . Joda-Time jauh lebih unggul dari kelas java.util.Date/.Calendar yang dibundel dengan Java.
LocalDate
Joda-Time menawarkan
LocalDate
kelas untuk mewakili tanggal saja tanpa zona waktu atau waktu. Apa yang ditanyakan oleh Pertanyaan ini. Kelas java.util.Date/.Calendar tua yang dibundel dengan Java tidak memiliki konsep ini.Parse
Parsing string menjadi nilai tanggal.
Ekstrak
Ekstrak dari nilai tanggal hari nomor dan nama minggu.
Membuang
Dump ke konsol.
Lari
Saat dijalankan.
Tentang java.time
The java.time kerangka dibangun ke Jawa 8 dan kemudian. Kelas-kelas ini menggantikan tua merepotkan warisan kelas tanggal-waktu seperti
java.util.Date
,Calendar
, &SimpleDateFormat
.Proyek Joda-Time , sekarang dalam mode pemeliharaan , menyarankan migrasi ke kelas java.time .
Untuk mempelajari lebih lanjut, lihat Tutorial Oracle . Dan cari Stack Overflow untuk banyak contoh dan penjelasan. Spesifikasi adalah JSR 310 .
Di mana mendapatkan kelas java.time?
Proyek ThreeTen-Extra memperpanjang java.time dengan kelas tambahan. Proyek ini adalah ajang pembuktian untuk kemungkinan penambahan masa depan ke java.time. Anda mungkin menemukan beberapa kelas berguna di sini seperti
Interval
,YearWeek
,YearQuarter
, dan lebih .sumber
waktu java
Menggunakan
java.time
framework yang dibangun ke Java 8 dan yang lebih baru.The enum dapat menghasilkan String dari nama hari secara otomatis diterjemahkan ke bahasa manusia dan norma-norma budaya dari . Tentukan untuk menunjukkan Anda ingin bentuk panjang atau nama disingkat.
DayOfWeek
Locale
TextStyle
sumber
Anda dapat mencoba kode berikut:
sumber
LocalDate
? Apakah Anda membaca itu sebelum memposting?sumber
Untuk Java 8 atau lebih baru , Localdate lebih disukai
Catatan: jika input adalah String / Pengguna ditentukan, maka Anda harus menguraikannya menjadi int .
sumber
sumber
Cara "asyik" lainnya adalah dengan menggunakan algoritme Kiamat . Ini metode yang jauh lebih lama tetapi juga lebih cepat jika Anda tidak perlu membuat objek Kalender dengan tanggal tertentu.
sumber
Dapat menggunakan potongan kode berikut untuk input seperti (hari = "08", bulan = "05", tahun = "2015" dan output akan menjadi "WEDNESDAY")
sumber
Satu jawaban baris:
Contoh Penggunaan:
sumber
sumber
sumber
Ada tantangan pada tanggal dan waktu Java hackerrank
secara pribadi, saya lebih suka kelas LocalDate.
Ada satu video tentang tantangan ini.
Solusi Java Date and Time Hackerrank
Saya harap ini akan membantu :)
sumber
Calendar
Kelas itu, Harap dicatat bahwaset
metode dalam Kalender memakan waktu berbulan-bulan mulai dari 0. yaitu0 for January
,. Terima kasih!Menambahkan cara lain untuk melakukannya persis seperti yang diminta OP, tanpa menggunakan metode inbuilt terbaru:
sumber
SimpleDateFormat
danDate
. Khususnya Anda tidak boleh menggunakangetDay
metode yang sudah usang , itu tidak dapat diandalkan. Dan Anda tidak boleh menggunakanif
-else
untuk memilih di antara 7 nilai, ini untuk apa kami milikiswitch
, atau Anda dapat menggunakan array. Secara keseluruhan, kode Anda lebih panjang dan lebih rumit dari yang seharusnya.sumber
Program untuk menemukan hari dalam seminggu dengan memberikan tanggal dan tahun input input pengguna menggunakan
java.util.scanner
paket:sumber
java.util.Date
,java.util.Calendar
, danjava.text.SimpleDateFormat
sekarang warisan , digantikan oleh java.time kelas dibangun ke Jawa 8 & Java 9. Lihat Tutorial oleh Oracle .if ((ym%4==0) && (gm==2)){ d=(gd+m[gm-1]+ym+yp+y[a]-1)%7;
Dapatkan nilai hari dengan memberikan cap waktu saat ini.
sumber
sumber
metode di bawah ini mengambil tujuh hari dan kembali nama pendek hari dalam Daftar Array di Kotlin, Anda hanya dapat memformat ulang kemudian dalam format Java, hanya menyajikan ide bagaimana Kalender dapat mengembalikan nama pendek
out put hasil seperti
sumber
Calendar
kelas pada tahun 2019. Ini dirancang dengan buruk dan sudah usang. Alih-alih, saya merekomendasikanLocalDate
danDayOfWeek
dari java.time, API tanggal dan waktu Java modern .Anda dapat menggunakan metode di bawah ini untuk mendapatkan Day of the Week dengan melewati tanggal tertentu,
Di sini untuk metode kumpulan kelas Kalender, bagian Tricky adalah indeks untuk parameter bulan akan dimulai dari 0 .
sumber
Kelas kalender memiliki fungsionalitas displayName bawaan:
Tersedia sejak Java 1.6. Lihat juga dokumentasi Oracle
sumber
Ini berfungsi dengan benar ...
Ini memberikan metode inbuilt getDayOfWeek () untuk mendapatkan hari dalam minggu tertentu:
Untuk menetapkan nilai enum
l.getDayOfWeek()
ke string, Anda mungkin bisa menggunakan metode Enum yang disebutname()
yang mengembalikan nilai objek enum.sumber
listHolidays.add(LocalDate.of(year, 1, 1));
jawaban. Jika Anda ingin meningkatkan jawabannya, Anda harus menambahkan jawaban Anda sendiri. Semoga itu bisa membantuDi bawah ini adalah dua baris cuplikan menggunakan Java 1.8 Time API untuk Kebutuhan Anda.
sumber