Wie ist es möglich in Java durch eine Kalenderwoche jedes datum in dieser woche zu bestimmen?

2 Antworten

Nutze die Klasse Calendar. In diesem Beispiel wird der Montag einer bestimmten Woche ausgegeben:

void printMondayOfWeek(int weekNumber) {
  Calendar calendar = Calendar.getInstance();
  calendar.set(Calendar.WEEK_OF_YEAR, weekNumber);        
  calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

  SimpleDateFormat formatter = new SimpleDateFormat("MM dd yyyy");
  System.out.println(formatter.format(calendar.getTime())); 
}

// main:
printMondayOfWeek(52);

Die Validierung des Parameters habe ich mir an dieser Stelle einmal gespart.

Du kannst ganz einfach das mit LocalDate umsetzen:

[Java 8]

int year = 2018;
int weekNumber = 1;

LocalDate date = LocalDate.of(year, Month.JANUARY, 10);
LocalDate dayInWeek = date.with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, weekNumber);
LocalDate start = dayInWeek.with(DayOfWeek.MONDAY);

System.out.println(start);

Ergebnis hier wäre: 2018-01-01