Primero, no use el paquete Fecha/Hora de Java. Hay un paquete de utilidades mucho mejor llamado Joda-Time - descárguelo y úselo.
Para determinar si su tiempo es en esta semana, la semana pasada, o cualquier semana en todo, hacer esto:
- Cree dos objetos Intervalo - uno para la semana pasada y uno para esta semana
- Uso el método contiene (largo) para determinar qué intervalo contiene la fecha que está buscando.
Existen varias maneras geniales de crear dos semanas consecutivas. Puede configurar una Duración de una semana, encontrar la hora de inicio para la primera semana y simplemente crear dos Intervalos basados en esa hora de inicio. Siéntase libre de encontrar cualquier otra forma que funcione para usted: el paquete tiene numerosas formas de llegar a lo que desea.
EDIT:
Joda-Time puede ser downloaded here, y aquí es un ejemplo de cómo Joda haría esto:
// Get the date today, and then select midnight of the first day of the week
// Joda uses ISO weeks, so all weeks start on Monday.
// If you want to change the time zone, pass a DateTimeZone to the method toDateTimeAtStartOfDay()
DateTime midnightToday = new LocalDate().toDateTimeAtStartOfDay();
DateTime midnightMonday = midnightToday.withDayOfWeek(DateTimeConstants.MONDAY);
// If your week starts on Sunday, you need to subtract one. Adjust accordingly.
DateTime midnightSunday = midnightMonday.plusDays(-1);
DateTime midnightNextSunday = midnightSunday.plusDays(7);
DateTime midnightSundayAfter = midnightNextSunday.plusDays(7);
Interval thisWeek = new Interval(midnightSunday, midnightNextSunday);
Interval nextWeek = new Interval(midnightNextSunday, midnightSundayAfter);
if (thisWeek.contains(someDate.getTime())) System.out.println("This week");
if (nextWeek.contains(someDate.getTime())) System.out.println("Next week");
¿Qué pasaría si el día actual es domingo? –
Si hoy es domingo, es el primer día de la semana de 7 días, comenzando esta mañana a las 00:00 hasta el próximo domingo a las 00:00 esta semana. – Frank