una sistema semana sacar para obtener numero funcion fecha como actual java android

java - sistema - ¿Cuál es la forma más fácil de obtener el día actual de la semana en Android?



obtener fecha actual java netbeans (9)

¿Cuál sería la forma más fácil de obtener el día actual de la semana en Android?


Aquí está mi enfoque simple para obtener el día actual

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


Como DAY_OF_WEEK en la clase GregorianCalender es un campo estático, puedes acceder directamente como foolows

int dayOfWeek = GregorianCalender.DAY_OF_WEEK;


Si no quieres usar la clase Calendar, puedes usar esto

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

es decir, el resultado es

"Sunday"


Usando ambos métodos, es fácil si no dura los siete días que usa (número día actual + 7-1)% 7, (número díaactual + 7-2)% 7 ..... hasta 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()); }


API Java 8 datetime lo hizo mucho más fácil:

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

Te devolverá el nombre del día como String

Salida: JUEVES


Use la clase de Calendar Java.

Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); switch (day) { case Calendar.SUNDAY: // Current day is Sunday case Calendar.MONDAY: // Current day is Monday case Calendar.TUESDAY: // etc. }


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

Resultado (para hoy):

Sat Saturday

ACTUALIZACIÓN: 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);

Resultado (para hoy):

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


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

o

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

Lo mismo que en Java, nada particular para Android.


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