134 votes

Quel est le moyen le plus simple d'obtenir le jour de la semaine sous Android ?

Quel serait le moyen le plus simple d'obtenir le jour de la semaine sous Android ?

301voto

Kyle Ivey Points 2120

La Java Calendar La classe travaille.

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;
}

Pour une meilleure gestion des dates, il est possible d'utiliser l'option API temporelle Java 8 :

String day = LocalDate.now().getDayOfWeek().name()

Pour l'utiliser sous Android SDK 26, vous devez activer la désugmentation de Java 8 dans le fichier build.gradle :

android {
  defaultConfig {
    // Required when setting minSdkVersion to 20 or lower
    multiDexEnabled true
  }

  compileOptions {
    // Flag to enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Sets Java compatibility to Java 8
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9'
}

Plus d'informations sur la prise en charge de Java 8 par Android : https://developer.Android.com/studio/write/java8-support

0 votes

Ceci est applicable à Java, pas à Android. La classe "Calendar" provient du paquet java.util

9 votes

@Navin Israni Que voulez-vous dire ? Je ne vois aucun problème à utiliser java.util. Calendar est ajouté au niveau 1 de l'API.

0 votes

Ajouter. Kotlin à vos drapeaux

41voto

Laszlo Hirdi Points 760
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()));

Résultat (pour aujourd'hui) :

Sat
Saturday

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);

Résultat (pour aujourd'hui) :

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

28voto

Mehraj Malik Points 3248

Java 8 datetime API a rendu les choses tellement plus faciles :

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

Vous renverra le nom du jour comme String

Sortie : JEUDI

26voto

LazyBitStream Points 195
Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

ou

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

C'est la même chose qu'en Java, rien de particulier à Android.

2 votes

Renvoie un int

0 votes

Vous pouvez le vérifier dans Calender.SUNDAY etc.

15voto

DeepanshuJ Points 141
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]);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X