una studio sistema programa persona nacimiento meses fecha edad dias con como calcular años java calendar

studio - fecha de nacimiento en java



Java: obtenga cualquier día en una semana del Calendario (5)

Este es un ejemplo perfecto de por qué jodatime es tan bueno, aquí está mi código similar

DateTime dt = new DateTime(); //current datetime, jodatime format DateTime fridayLastWeek = dt.minusWeeks(1).dayOfWeek().setCopy("Friday"); Date convertedtorubbishdateformat = fridayLastWeek.toDate();

Solía ​​perder tanto tiempo con la fecha / calendario estándar de Java. Luego conseguí jodatime, no lo lamentarás, al parecer se usará como parte de java estándar en el futuro. No me molesté en tirar la jarra durante años, desearía haber hecho, no te arrepentirás.

Usando Calendar puedo obtener la semana, el año y todos los detalles del día actual. ¿Cómo puedo navegar a un día particular en esa semana?

Diga, calendar.get(Calendar.DAY_OF_WEEK); devuelve 3, lo que significa un martes. Ahora, quiero ir a decir el viernes de esa semana o cualquier otro día de esa semana. ¿Cómo puedo hacer eso?

Gracias por tus respuestas. Creo que necesito aclarar el escenario. Básicamente, estoy tratando de desactivar las alertas por correo electrónico en mi sistema durante el período especificado. Obtengo valores como: disableStart = "VIERNES-19: 00" disableEnd = "DOMINGO-19: 00"

Ahora, necesito verificar si el correo electrónico debe enviarse en un momento determinado. por ejemplo, si hoy = jueves en cualquier momento, envíe un correo electrónico pero, si hoy = sábado, cualquier momento no puede enviarse según los valores anteriores.


Gracias a Kevin y Maurice por las respuestas. Realmente me dieron el punto de partida.

Terminé con este código de prueba, en caso de que ayude a alguien.

private static Date getTimeForAnyDayInWeek(int nDay, int nHour, int nMin) { Calendar c = Calendar.getInstance(); c.setFirstDayOfWeek(Calendar.MONDAY); Date date = Calendar.getInstance().getTime(); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, nDay); c.set(Calendar.HOUR_OF_DAY, nHour); c.set(Calendar.MINUTE, nMin); return c.getTime(); } public static void main(String[] args) { Date start = getTimeForAnyDayInWeek(6, 19, 00); Date end = getTimeForAnyDayInWeek(8, 19, 00); Date c = new Date(); if (start.before(c) && c.before(end)) System.out.println("BLOCK"); else System.out.println("SEND"); }

Gracias, Anubhav


Si entiendo correctamente, puede usar el método Calendar.set (Field, value).

SimpleDateFormat f = new SimpleDateFormat("dd-MM-yyyy"); Calendar c = Calendar.getInstance(); System.out.println(c.get(Calendar.DAY_OF_WEEK)); System.out.println(f.format(c.getTime())); c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); System.out.println(c.get(Calendar.DAY_OF_WEEK)); System.out.println(f.format(c.getTime()));

Produce la salida

6 08-10-2010 3 05-10-2010


cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);


Calendar c = Calendar.getInstance(); Date date = new Date(); c.setTime(date); System.out.println("Today: " + c.getTime()); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); System.out.println("MONDAY: " + c.getTime()); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); System.out.println("TUESDAY: " + c.getTime()); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); System.out.println("WEDNESDAY: " + c.getTime()); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY); System.out.println("THURSDAY: " + c.getTime()); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); System.out.println("FRIDAY: " + c.getTime()); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); System.out.println("SATURDAY: " + c.getTime()); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); System.out.println("SUNDAY: " + c.getTime());

Da:

Today: Fri Oct 08 15:45:14 CEST 2010 MONDAY: Mon Oct 04 15:45:14 CEST 2010 TUESDAY: Tue Oct 05 15:45:14 CEST 2010 WEDNESDAY: Wed Oct 06 15:45:14 CEST 2010 THURSDAY: Thu Oct 07 15:45:14 CEST 2010 FRIDAY: Fri Oct 08 15:45:14 CEST 2010 SATURDAY: Sat Oct 09 15:45:14 CEST 2010 SUNDAY: Sun Oct 10 15:45:14 CEST 2010

Lo que significa que, al menos en mi sistema, las semanas comienzan el lunes.