Wie ist es möglich in Java durch eine Kalenderwoche jedes datum in dieser woche zu bestimmen?
Zum Beispiel man gibt das Jahr 2017 un die Kalendarwoche 52 und dann sollen diese Daten rauskommen
Mo Di Mi Do Fr Sa So
25.12. 26.12. 27.12. 28.12. 29.12. 30.12 31.12.
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Java
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