Día de la semana en español con Java
Siguiendo con los post dedicados a fechas, en este artículo se explicará cómo obtener el día de la semana dada una fecha en concreto. Supongamos que nos dan un String con la fecha en formato año-mes-día. Lo primero que habría que hacer sería trocear la cadena:
String fecha = "2015-11-19";
StringTokenizer st = new StringTokenizer(fecha, "-");
String año = st.nextToken();
String mes = st.nextToken();
String dia = st.nextToken();
Posteriormente creamos el objeto Calendar y mostramos el día de semana, que corresponderá al campo DAY_OF_WEEK del objeto Calendar:
Calendar cal = GregorianCalendar.getInstance();
cal.set(Integer.parseInt(año), Integer.parseInt(mes) - 1 , Integer.parseInt(dia));
System.out.println(cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, new Locale("ES")));
Aquí tenemos que tener en cuenta varios aspectos:
- El número de mes empieza en 0, correspondiendo el 0 a Enero, el 1 a Febrero, el 2 a Marzo, … Por eso hacemos mes-1 al pasar el parámetro mes.
- Hemos definido el idioma español mediante new Locale (“ES”). Podemos consultar otras constantes para definir el lenguaje aquí: http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html .
- El día de semana se muestra en formato largo, ya que lo hemos indicado en Calendar.LONG . Si lo queremos en formato corto, lo sustituiremos por Calendar.SHORT.
- Los parámetros año, mes y día los hemos convertido de String a int mediante Integer.parseInt .
Como siempre, podéis utilizar los comentarios para plantear vuestras dudas.
Tweet
2 Comentarios:
Gracias excelente aporte!!
Gracias a tí por comentar. Un saludo.
Publicar un comentario