Apa cara termudah untuk mendapatkan hari ini dalam seminggu di Android?


114

Apa cara termudah untuk mendapatkan hari ini dalam seminggu di Android?

Jawaban:


267

Gunakan Calendarkelas Java .

Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK); 

switch (day) {
    case Calendar.SUNDAY:
        // Current day is Sunday
        break;
    case Calendar.MONDAY:
        // Current day is Monday
        break;
    case Calendar.TUESDAY:
        // etc.
        break;
}

Ini berlaku di seluruh Java, bukan Android. Kelas "Kalender" berasal dari paket java.util
Navin Israni

7
@Navin Israni Apa maksudmu? Saya tidak melihat adanya masalah dalam menggunakan java.util. Kalender ditambahkan di API level 1.
Tanggal

33
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
// 3 letter name form of the day
System.out.println(new SimpleDateFormat("EE", Locale.ENGLISH).format(date.getTime()));
// full name form of the day
System.out.println(new SimpleDateFormat("EEEE", Locale.ENGLISH).format(date.getTime()));

Hasil (untuk hari ini):

Duduk
Sabtu

UPDATE: java8

LocalDate date = LocalDate.now();
DayOfWeek dow = date.getDayOfWeek();
System.out.println("Enum = " + dow);

String dayName = dow.getDisplayName(TextStyle.FULL, Locale.ENGLISH);
System.out.println("FULL = " + dayName);

dayName = dow.getDisplayName(TextStyle.FULL_STANDALONE, Locale.ENGLISH);
System.out.println("FULL_STANDALONE = " + dayName);

dayName = dow.getDisplayName(TextStyle.NARROW, Locale.ENGLISH);
System.out.println("NARROW = " + dayName);

dayName = dow.getDisplayName(TextStyle.NARROW_STANDALONE, Locale.ENGLISH);
System.out.println("NARROW_STANDALONE = " + dayName);

dayName = dow.getDisplayName(TextStyle.SHORT, Locale.ENGLISH);
System.out.println("SHORT = " + dayName);

dayName = dow.getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ENGLISH);
System.out.println("SHORT_STANDALONE = " + dayName);

Hasil (untuk hari ini):

Enum = SATURDAY
FULL = Saturday
FULL_STANDALONE = Saturday
NARROW = S
NARROW_STANDALONE = 6
SHORT = Sat
SHORT_STANDALONE = Sat

22
Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

atau

new GregorianCalendar().get(Calendar.DAY_OF_WEEK);

Sama seperti di Java, tidak ada yang khusus untuk Android.


2
ini mengembalikan int
Himanshu Rawat

Anda dapat memeriksanya dari Calender.SUNDAY dll.
Shivam Tripathi

16

Java 8 datetime APImembuatnya jauh lebih mudah:

LocalDate.now().getDayOfWeek().name()

Akan mengembalikan Anda nama hari ini sebagai String

Output: KAMIS


2
Bagus! tetapi membutuhkan API Level 26 di Android
dnhyde

11
public String weekdays[] = new      DateFormatSymbols(Locale.ITALIAN).getWeekdays();
 Calendar c = Calendar.getInstance();
 Date date = new Date();
 c.setTime(date);
 int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
 System.out.println(dayOfWeek);
 System.out.println(weekdays[dayOfWeek]);

9

Jika Anda tidak ingin menggunakan kelas Kalender sama sekali, Anda dapat menggunakan ini

String weekday_name = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(System.currentTimeMillis());

yaitu, hasilnya adalah,

"Sunday"

5

Inilah pendekatan sederhana saya untuk mendapatkan Hari Ini

public String getCurrentDay(){

    String daysArray[] = {"Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday", "Saturday"};

    Calendar calendar = Calendar.getInstance();
    int day = calendar.get(Calendar.DAY_OF_WEEK);

    return daysArray[day];

}

2
Saya tidak yakin mengapa, tetapi dalam kasus saya, angka hari dimulai dari 1, bukan dari 0. Jadi, susunan saya terlihat seperti ini:String[] days = {"?", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
Dr. Failov

Anda dapat menyingkirkan "?" lalu sepertiint day = calendar.get(Calendar.DAY_OF_WEEK) - 1;
Qadir Hussain

4

Menggunakan kedua metode Anda merasa mudah jika Anda tidak akan bertahan tujuh hari yang Anda gunakan (nomor hari ini + 7-1)% 7, (nomor hari ini + 7-2)% 7 ..... upto 6

public static String getDayName(int day){
    switch(day){
        case 0:
            return "Sunday";
        case 1:
            return "Monday";
        case 2:
            return "Tuesday";
        case 3:
            return "Wednesday";
        case 4:
            return "Thursday";
        case 5:
            return  "Friday";
        case 6:
            return "Saturday";
    }

    return "Worng Day";
}
public static String getCurrentDay(){
    SimpleDateFormat dayFormat = new SimpleDateFormat("EEEE", Locale.US);
    Calendar calendar = Calendar.getInstance();
    return dayFormat.format(calendar.getTime());

}

1

Anda dapat menggunakan kode itu untuk Kotlin yang akan Anda gunakan kelas kalender dari java ke Kotlin

    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

    fun dayOfWeek() {
    println("What day is it today?")
    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
    println( when (day) {
      1 -> "Sunday"
      2 -> "Monday"
      3 -> "Tuesday"
      4 -> "Wednesday"
      5 -> "Thursday"
      6 -> "Friday"
      7 -> "Saturday"
      else -> "Time has stopped"
   })
 }

-10

Karena DAY_OF_WEEK di kelas GregorianCalender adalah bidang statis, Anda dapat mengaksesnya secara langsung sebagai orang bodoh

int dayOfWeek = GregorianCalender.DAY_OF_WEEK;


8
Tidak, tidak. Tidak.
Pkmmte

Anda juga dapat dengan mudah menggunakan kelas Kalender untuk java dan Kotlin
mahmoud Zahran
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.